/************************************************************************************************************
(C) www.dhtmlgoodies.com, September 2005

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/


//parte de ajax

	var xmlHttp
	
	function return_list(princ)
	{
		
		  
		xmlHttp=GetXmlHttpObject();
		
		if (xmlHttp==null)
		  {
		  alert ("Your browser does not support AJAX!");
		  return;
		  } 
		  
			
		  
		  var url="http://localhost/grimal/return_list.php";
		  
		  if(princ==1 || princ==2)
		  {
		  		
		  		url=url+"?type=pieces";

		  		
				
		  }else if(princ==3 || princ==4)
		  {
		  		url=url+"?type=prix";
		  		
		  	
				
		  }else if(princ==666)
		  {
		  		url=url+"?type=reset";
		  }
		  
		  else{
		  		url=url+"?type=ville";
		  }
		  if(princ!=666)
		  {
			url=url+"&piecesmin="+document.getElementById("piecesmin").value+"&piecesmax="+document.getElementById("piecesmax").value;
	  		url=url+"&prixmin="+document.getElementById("prixmin").value+"&prixmax="+document.getElementById("prixmax").value;		 
		  
	  		
	  		
	  		var selobj=document.getElementById('ville');
			var selindex=selobj.selectedIndex;
			var selected=selobj.options[selindex].text; 
			
			if(selobj.options[selindex].value!=0)
					url=url+"&ville="+selobj.options[selindex].text;
		
		  }
		  
		xmlHttp.onreadystatechange=stateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	} 
	
	
	
	function stateChanged() 
	{ 
		if (xmlHttp.readyState==4)
		{ 
			
			
			var resp_xml=xmlHttp.responseText;
			var resp=resp_xml.split("_");
			if(resp[0]=="reset")
			{
					
				
				
				sliderObjectArray[1]['min']=parseInt(resp[1]);
				sliderObjectArray[2]['min']=parseInt(resp[1]);
				
				
				document.getElementById("piecesmin").value=parseInt(resp[1]);
				
				sliderObjectArray[1]['max']=parseInt(resp[2]);
				sliderObjectArray[2]['max']=parseInt(resp[2]);
				
				document.getElementById("piecesmax").value=parseInt(resp[2]);
				
				sliderObjectArray[3]['min']=parseInt(resp[3]);
				sliderObjectArray[4]['min']=parseInt(resp[3]);
				
				
				document.getElementById("prixmin").value=parseInt(resp[3]);
				
				sliderObjectArray[3]['max']=parseInt(resp[4]);
				sliderObjectArray[4]['max']=parseInt(resp[4]);
				
				document.getElementById("prixmax").value=parseInt(resp[4]);
				
				
				document.getElementById("total").innerHTML=parseInt(resp[5]);
				
					var ville=resp[6].split(",");
					var max_villes=ville.length;
					
				
				
					document.forms['form_cautare'].ville.options.length = 0;
					document.forms['form_cautare'].ville.options[0]= new Option("Toutes les villes","0");
					
					for(i=0;i<=max_villes;i++)
					{
						
						
						if(ville[i]!="" && ville[i])
						{
							document.forms['form_cautare'].ville.options[i+1] = new Option(ville[i],ville[i]);
							
							
						}
						
					}
					
					
					document.getElementById('slider_handle' + 1).style.left = 0 + 'px';
					document.getElementById('slider_handle' + 3).style.left =  0 + 'px';
					
					
					document.getElementById('slider_handle' + 2).style.left = 190+'px';
					
					document.getElementById('slider_handle' + 4).style.left = 190+'px';
				
				
			}
			
			
			if(resp[0]=="prix")//modifica pretul
			{
				
			
					var ratio_live = sliderObjectArray[3]['width'] / (sliderObjectArray[3]['max']-sliderObjectArray[3]['min']);
					
					
						document.getElementById('slider_handle' + 3).style.left = (parseInt(resp[1])-sliderObjectArray[3]['min'])  *  ratio_live  +'px';
						sliderObjectArray[3]['formTarget'].value=parseInt(resp[1]);
						
						document.getElementById('slider_handle' + 4).style.left = (parseInt(resp[2])-sliderObjectArray[3]['min'])  *  ratio_live  +'px';
						sliderObjectArray[4]['formTarget'].value=parseInt(resp[2]);
						
				/*
					var ratio_live = sliderObjectArray[4]['width'] / (parseInt(resp[2])-parseInt(resp[1]));
					if((sliderObjectArray[4]['formTarget'].value-parseInt(resp[1]))* ratio_live>=0 && (sliderObjectArray[4]['formTarget'].value-parseInt(resp[1]))* ratio_live<=190)
					{
						document.getElementById('slider_handle' + 4).style.left =(sliderObjectArray[4]['formTarget'].value-parseInt(resp[1]))* ratio_live  +'px';
						
					}	
					else
					{
						sliderObjectArray[4]['formTarget'].value=parseInt(resp[2]);
						document.getElementById('slider_handle' + 4).style.left =  190 + 'px';
					}
				
				*/
				/*
				sliderObjectArray[3]['min']=parseInt(resp[1]);
				sliderObjectArray[4]['min']=parseInt(resp[1]);
				
				
				
				
				sliderObjectArray[3]['max']=parseInt(resp[2]);
				sliderObjectArray[4]['max']=parseInt(resp[2]);
				
				*/
				
				
				
				
			}
			
			if(resp[0]=="pieces")//modifica numarul de camere
			{
				
				
				var ratio_live = sliderObjectArray[1]['width'] / (sliderObjectArray[1]['max']-sliderObjectArray[1]['min']);
					
					
						document.getElementById('slider_handle' + 1).style.left = (parseInt(resp[1])-sliderObjectArray[1]['min'])  *  ratio_live  +'px';
						sliderObjectArray[1]['formTarget'].value=parseInt(resp[1]);
						
						document.getElementById('slider_handle' + 2).style.left = (parseInt(resp[2])-sliderObjectArray[1]['min'])  *  ratio_live  +'px';
						sliderObjectArray[2]['formTarget'].value=parseInt(resp[2]);
				
				
				
				/*
				var ratio_live = sliderObjectArray[1]['width'] / (parseInt(resp[2])-parseInt(resp[1]));
					if((sliderObjectArray[1]['formTarget'].value-parseInt(resp[1]))* ratio_live>=0)
						document.getElementById('slider_handle' + 1).style.left =(sliderObjectArray[1]['formTarget'].value-parseInt(resp[1]))* ratio_live  +'px';
					else
					{
						sliderObjectArray[1]['formTarget'].value=parseInt(resp[1]);
						document.getElementById('slider_handle' + 1).style.left =  0 + 'px';
					}
			
				
					var ratio_live = sliderObjectArray[2]['width'] / (parseInt(resp[2])-parseInt(resp[1]));
					if((sliderObjectArray[2]['formTarget'].value-parseInt(resp[1]))* ratio_live>=0 && (sliderObjectArray[2]['formTarget'].value-parseInt(resp[1]))* ratio_live<=190)
					{
						document.getElementById('slider_handle' + 2).style.left =(sliderObjectArray[2]['formTarget'].value-parseInt(resp[1]))* ratio_live  +'px';
						
					}	
					else
					{
						sliderObjectArray[2]['formTarget'].value=parseInt(resp[2]);
						document.getElementById('slider_handle' + 2).style.left =  190 + 'px';
					}
					
					
					
				
				sliderObjectArray[1]['min']=parseInt(resp[1]);
				sliderObjectArray[2]['min']=parseInt(resp[1]);
				
				
				
				
				sliderObjectArray[1]['max']=parseInt(resp[2]);
				sliderObjectArray[2]['max']=parseInt(resp[2]);
				
				*/
				
			}
			
			
			if(resp[0]=="ville")
			{
				
				sliderObjectArray[1]['min']=parseInt(resp[1]);
				sliderObjectArray[2]['min']=parseInt(resp[1]);
				
				
				
				
				sliderObjectArray[1]['max']=parseInt(resp[2]);
				sliderObjectArray[2]['max']=parseInt(resp[2]);
				
				
				sliderObjectArray[3]['min']=parseInt(resp[3]);
				sliderObjectArray[4]['min']=parseInt(resp[3]);
				
				
				
				
				sliderObjectArray[3]['max']=parseInt(resp[4]);
				sliderObjectArray[4]['max']=parseInt(resp[4]);
				
				document.getElementById("total").innerHTML=resp[5];
			}
			
			
			if(resp[0]=="pieces" || resp[0]=="prix")
			{
					var ville=resp[5].split(",");
					var max_villes=parseInt(resp[4]);
					
					//var selobj=document.getElementById('ville');
					//var selindex=selobj.selectedIndex;
					//var selected=selobj.options[selindex].text;
				
					//document.forms['form_cautare'].ville.options.length = 0;
					//document.forms['form_cautare'].ville.options[0]= new Option("Toutes les villes","0");
					var length_sel=document.forms['form_cautare'].ville.options.length - 1;
					
					for(j=0;j<=length_sel;j++)
						document.forms['form_cautare'].ville.options[j].style.color = "brown";
						
					
					for(i=0;i<=max_villes;i++)
					{
						
						
						for(j=0;j<=length_sel;j++)
						{
							if(ville[i]==document.forms['form_cautare'].ville.options[j].value)
								document.forms['form_cautare'].ville.options[j].style.color = "gray";
						}
						
						
						/*
						if(ville[i]!="" && ville[i])
						{
							document.forms['form_cautare'].ville.options[i+1] = new Option(ville[i],ville[i]);
							k=i+1;
							if(ville[i]==selected)
							{
								document.forms['form_cautare'].ville.options[k].selected=true;
									
							}
						}*/
						
					}
			
					document.getElementById("total").innerHTML=resp[3];
					
			}
			
			
		}
		
		}
	
	
	function GetXmlHttpObject()
	{
		var xmlHttp=null;
		try
		  {
			  // Firefox, Opera 8.0+, Safari
			  xmlHttp=new XMLHttpRequest();
		  }
		catch (e)
		  {
			  // Internet Explorer
			  try
			    {
			   	 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			    }
			  catch (e)
			    {
			   	 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			    }
		  }
		return xmlHttp;
	}

//end ajax


var form_widget_amount_slider_handle = '/images/slider.png';
var slider_handle_image_obj = false;
var sliderObjectArray = new Array();
var slider_counter = 0;
var slideInProgress = false;
var handle_start_x;
var event_start_x;
var currentSliderIndex;
var sliderHandleWidth = 9;

function form_widget_cancel_event()
{
	return false;		
}

function getImageSliderHeight(){
	if(!slider_handle_image_obj){
		slider_handle_image_obj = new Image();
		slider_handle_image_obj.src = form_widget_amount_slider_handle;
	}
	if(slider_handle_image_obj.width>0){
		return;
	}else{
		setTimeout('getImageSliderHeight()',50);
	}
}


function positionSliderImage(e,theIndex)
{
	
	if(!theIndex)theIndex = this.getAttribute('sliderIndex');
	var theValue = sliderObjectArray[theIndex]['formTarget'].value;
	if(!theValue.match(/^[0-9]*$/g))theValue=sliderObjectArray[theIndex]['min'] +'';
	if(theValue/1>sliderObjectArray[theIndex]['max'])theValue = sliderObjectArray[theIndex]['max'];
	if(theValue/1<sliderObjectArray[theIndex]['min'])theValue = sliderObjectArray[theIndex]['min'];
	sliderObjectArray[theIndex]['formTarget'].value = theValue;
	var handleImg = document.getElementById('slider_handle' + theIndex);
	var ratio = sliderObjectArray[theIndex]['width'] / (sliderObjectArray[theIndex]['max']-sliderObjectArray[theIndex]['min']);
	
	//var currentValue = sliderObjectArray[theIndex]['formTarget'].value-sliderObjectArray[theIndex]['min']; asta era
	
	 
	if(theIndex==1 || theIndex==3)
	{
		var currentValue = sliderObjectArray[theIndex]['formTarget'].value-sliderObjectArray[theIndex]['min'];		
	}
	else if(theIndex==2 || theIndex==4)
	{
		var currentValue = sliderObjectArray[theIndex]['max']-sliderObjectArray[theIndex]['formTarget'].value;		
	}
	
	handleImg.style.left = Math.round(currentValue * ratio) + 'px';	
	
		
}



function adjustFormValue(theIndex)
{
	var handleImg = document.getElementById('slider_handle' + theIndex);	
	var ratio = sliderObjectArray[theIndex]['width'] / (sliderObjectArray[theIndex]['max']-sliderObjectArray[theIndex]['min']);
	var currentPos = handleImg.style.left.replace('px','');
	sliderObjectArray[theIndex]['formTarget'].value = Math.round(currentPos / ratio) + sliderObjectArray[theIndex]['min'];
	
}
	
function initMoveSlider(e)
{

	if(document.all)e = event;	
	slideInProgress = true;
	event_start_x = e.clientX;
	handle_start_x = this.style.left.replace('px','');
	currentSliderIndex = this.id.replace(/[^\d]/g,'');
	return false;
}

function startMoveSlider(e)
{
	if(document.all)e = event;	
	if(!slideInProgress)return;	
	var leftPos = handle_start_x/1 + e.clientX/1 - event_start_x;
	if(leftPos<0)leftPos = 0;
	if(leftPos/1>sliderObjectArray[currentSliderIndex]['width'])leftPos = sliderObjectArray[currentSliderIndex]['width'];
	document.getElementById('slider_handle' + currentSliderIndex).style.left = leftPos + 'px';
	adjustFormValue(currentSliderIndex);
	
}

function stopMoveSlider()
{
	if(slideInProgress==true)
		ok_go=1;
	else
		ok_go=0;
		
	slideInProgress = false;
	if(sliderObjectArray[currentSliderIndex])
	{
		if(sliderObjectArray[currentSliderIndex]['onchangeAction']){
			
			eval(sliderObjectArray[currentSliderIndex]['onchangeAction']);
			
					
		} 
		
	}
	
	if(ok_go==1)
	{	
		//loc pentru ajax
		
		
		
      return_list(currentSliderIndex);
		//sliderObjectArray[2]['min']=3;
       
		//end loc ajax
	}
		
	
	
	
}

var sliderPreloadedImages = new Array();
sliderPreloadedImages[0] = new Image();
sliderPreloadedImages[0].src = form_widget_amount_slider_handle;

function form_widget_amount_slider(targetElId,formTarget,width,min,max,onchangeAction)
{
	if(!slider_handle_image_obj){
		getImageSliderHeight();		
	}
			
	slider_counter = slider_counter +1;
	sliderObjectArray[slider_counter] = new Array();
	sliderObjectArray[slider_counter] = {"width":width - sliderHandleWidth,"min":min,"max":max,"formTarget":formTarget,"onchangeAction":onchangeAction};
	
	formTarget.setAttribute('sliderIndex',slider_counter);
	formTarget.onchange = positionSliderImage;
	var parentObj = document.createElement('DIV');

	
	parentObj.style.height = '12px';	// The height of the image
	parentObj.style.position = 'relative';
	parentObj.id = 'slider_container' + slider_counter;
	document.getElementById(targetElId).appendChild(parentObj);
	
	var obj = document.createElement('DIV');
	obj.className = 'form_widget_amount_slider';
	obj.innerHTML = '<span></span>';
	obj.style.width = width + 'px';
	obj.id = 'slider_slider' + slider_counter;
	//obj.style.position = 'absolute';
	obj.style.bottom = '0px';
	parentObj.appendChild(obj);
	
	var handleImg = document.createElement('IMG');
	handleImg.style.position = 'absolute';
	handleImg.style.left = '0px';
	handleImg.style.zIndex = 5;
	handleImg.src = slider_handle_image_obj.src;
	handleImg.id = 'slider_handle' + slider_counter;
	handleImg.onmousedown = initMoveSlider;
	
	parentObj.style.width = obj.offsetWidth + 'px';
	
	if(document.body.onmouseup){
		if(document.body.onmouseup.toString().indexOf('stopMoveSlider')==-1){
			alert('You allready have an onmouseup event assigned to the body tag');
		}
	}else{
		document.body.onmouseup = stopMoveSlider;	
		document.body.onmousemove = startMoveSlider;	
	}
	handleImg.ondragstart = form_widget_cancel_event;
	parentObj.appendChild(handleImg);
	positionSliderImage(false,slider_counter);
	
	
}
