// Removes leading whitespaces
function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}


function change_button(catId,section) // section will be moveout or moveeasy
{		
		var catField = document.getElementById("cat_id");
		catField.value = catId;
		
		var districtField = document.getElementById("district_no");
		var districtId = districtField.value ;
		
		var catNameLabel = document.getElementById("label"+catId);
		var catName = catNameLabel.innerHTML ;
		
		// show print link
		var print_link = document.getElementById("print_link");
        print_link.innerHTML = "<a href=\"javascript:void  PrintThisPage()\">Imprimez</a>";
		
		// change iframe src for printing option
		var iframe = document.getElementById("print_iframe");
        iframe.src = 'print_results.php?districtId='+districtId+'&categoryId='+catId;
		
		var textShow = document.getElementById("textShow");
		textShow.innerHTML = "<strong>Vous cherchez dans l'arrondissement <font color='red'>"+districtId+"</font> pour <font color='red'>"+catName+"</font></strong>";
		
		//var div = document.getElementById("submitButton");
		var url = "'get_results.php'";
		//	div.innerHTML = '<img src="images/go.gif" align="left"  border="none" onclick="javascript:get_results('+url+');"/>';
		if(section == "moveeasy")
		{
			get_results('get_easy_results.php');
		}
		else
		{
			get_results('get_results.php');		
			}
}

function display_content(divID,content)
{
	var div = document.getElementById(divID);
			div.innerHTML = content;
}

function disable_content(divID)
{
	var div = document.getElementById(divID);
			div.innerHTML = '';
}

function loading(divID)
{
		var div = document.getElementById(divID);
			//var loading_div = document.createElement("div"); // create div element
			//loading_div.setAttribute("id","load");
			//loading_div.innerHTML = "<img src='images/spinner.gif' border='0' />";
			//div.appendChild(loading_div); // add all content to the div container
			//alert ("ddddddddd"+div.innerHTML);
			div.innerHTML = "<img src='images/spinner.gif' border='0' />";
}

// remove one elements
	function removeElement(parent,child)
	{
		var parentElement = document.getElementById(parent);
		var childElement = document.getElementById(child);
		parentElement.removeChild(childElement);
	}

function set_session(dataSource,id) // this function to set session depend on district id 
      { 
	// alert (dataSource);
		   if (window.XMLHttpRequest) {
			XMLHttpRequestObject = new XMLHttpRequest();
		  } else if (window.ActiveXObject) {
			XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
		  }
	  
        if(XMLHttpRequestObject) {
		  var url = dataSource;
		  params ='id='+id;
		  params += '&ms='+new Date().getTime();
		  //alert (params);
          XMLHttpRequestObject.open("GET", url+'?'+params, true); 
          XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
			XMLHttpRequestObject.setRequestHeader("Connection", "close"); 
			
          XMLHttpRequestObject.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) 
			{// alert(XMLHttpRequestObject.responseText); alert ("msa");
                return true;
            } 
          } 

          XMLHttpRequestObject.send(null); //null
        }
   }

// this function to get places in specific category and specific district
function get_results(dataSource) // 
      { 
		loading("results_div"); // make loading image
		if (window.XMLHttpRequest) {
			XMLHttpRequestObject = new XMLHttpRequest();
		  } else if (window.ActiveXObject) {
			XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
		  }
	  //alert(dataSource);
        if(XMLHttpRequestObject) {
		  var obj = document.getElementById("results_div"); 	
		  var url = dataSource;
		  //params ='districtId='+districtId;
		  params = 'districtId='+document.forms["mapform"].district_no.value; // get district id
		params +='&categoryId='+document.forms["mapform"].cat_id.value;
		  /*var radioElements = document.mapform.cat; // get category id
		  alert (radioElements.constructor);*/
		  //if (radioElements[0])  // this condition to detect if the radio button is one or array
		 /* if (radioElements[0])
		  {
				for (j=0;j<radioElements.length;j++) 
				{
					if (x[j].checked) 
					{
						params += "&categoryId="+x[j].value;
					}
				}
		  }
		  else
		  {
			  if (radioElements.checked) 
			  	{ 
					params += "&categoryId="+radioElements.value; 
				}
		  }*/
		  /* if (radioElements.constructor == Array)
		  {
			  for (j=0;j<radioElements.length;j++) 
				{
					if (x[j].checked) 
					{
						params += "&categoryId="+x[j].value;
					}
				}
		  }
		  else
		  {if (radioElements.checked) 
			  	{ 
					params += "&categoryId="+radioElements.value; 
				}
			  
			 }  */
		  //params +='&categoryId='+categoryId;
		  params += '&ms='+new Date().getTime();
		 // alert (params);
          XMLHttpRequestObject.open("GET", url+'?'+params, true); 
          XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
			XMLHttpRequestObject.setRequestHeader("Connection", "close"); 
			
          XMLHttpRequestObject.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) 
			{// alert(XMLHttpRequestObject.responseText); 
				//alert ("obj.innerHTML");
				obj.innerHTML = "";
                obj.innerHTML = XMLHttpRequestObject.responseText;
				
            } 
          } 
          XMLHttpRequestObject.send(null); //null
        }
   } 

// this function to get categories in specific district
function get_categories(dataSource,categoryType,mainCategoryId,districtId) // categoryType = movein or moveout
      { //alert(" "+dataSource+" - "+categoryType+" - "+mainCategoryId+" - "+districtId+" ");
		loading("category_div"); // make loading image
		//reset_button(); // reset submit button to default 
		var textShow = document.getElementById("textShow"); 
		textShow.innerHTML = "";
		textShow.innerHTML = "<strong>Vous cherchez dans l'arrondissement <font color='red'>"+districtId+ "</font></strong>";
		
		
		if (window.XMLHttpRequest) {
			XMLHttpRequestObject2 = new XMLHttpRequest();
		  } else if (window.ActiveXObject) {
			XMLHttpRequestObject2 = new ActiveXObject("Microsoft.XMLHTTP");
		  }
	  
        if(XMLHttpRequestObject2) {
		  var obj1 = document.getElementById("category_div"); 
		  var url = dataSource;
		  params ='districtId='+districtId;
		  params +='&mainCategoryId='+mainCategoryId;
		  params +='&categoryType='+categoryType;
		  params += '&ms='+new Date().getTime();
		  //alert (params);
		  //alert (obj1.innerHTML);
          XMLHttpRequestObject2.open("GET", url+'?'+params, true); 
          XMLHttpRequestObject2.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
			XMLHttpRequestObject2.setRequestHeader("Connection", "close"); 
			
          XMLHttpRequestObject2.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject2.readyState == 4 && XMLHttpRequestObject2.status == 200) 
			{// alert(XMLHttpRequestObject.responseText); //alert ("msa");
				obj1.innerHTML = "";
                obj1.innerHTML = XMLHttpRequestObject2.responseText;
				
            } 
          } 
          XMLHttpRequestObject2.send(null); //null
        }
   }   

// this function to find the position of div element
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
	//alert(curleft);
	//alert(curtop);
}

// this function to draw line between two divs and assign variable to session and show some data 
function myDrawFunction(firstDiv,targetDiv,drawDiv,selectedIdLink,categoryType,mainCategoryId)
{	
	var linksIds = new Array("linkPR1","linkPR2","linkPR3","linkPR4","linkPR5","linkPR6","linkPR7","linkPR8","linkPR9","linkPR10","linkPR11","linkPR12","linkPR13","linkPR14","linkPR15","linkPR16","linkPR17","linkPR18","linkPR19","linkPR20");
	
	for(i=0; i < linksIds.length; i++)
	{	//alert(linksIds[i]);
		 var link_id = document.getElementById(linksIds[i]);
		link_id.style.backgroundImage = '';
	}
	
	var bgimage = selectedIdLink.replace("linkPR","");
	
	// assign the number of district selected to district number field
	var district_number = document.getElementById("district_no");  //alert(district_number.value);
	district_number.value = bgimage;
	//alert(district_number.value);
	
	set_session('add_district_session.php',bgimage); // set session for district id
	
	if(categoryType == "movein")
	{
		get_categories('get_easy_categories.php',categoryType,mainCategoryId,bgimage) // get categories depend on district id
	}
	else
	{
		get_categories('get_categories.php',categoryType,mainCategoryId,bgimage) // get categories depend on district id

		}
	
	if (bgimage < 10) // this condition to get the name of background image
	{
		bgimage = "0"+bgimage;
		}
	bgimage += ".gif"; // get the name of the photo
	var selected_link = document.getElementById(selectedIdLink);
	selected_link.style.backgroundImage = "url(\"images/map/"+bgimage+"\")";
	
  // get elements with its ID
  var Div1 = document.getElementById(firstDiv);	
  var Div2 = document.getElementById(targetDiv);
  var Div3 = document.getElementById(drawDiv);
  //Div1.style.background = '#cc0000';
  // get coordinats of two items
  var coors1 = findPos(Div1);
  var coors2 = findPos(Div2);	
  
  jg_Div3 = new jsGraphics(Div3);	
  jg_Div3.setColor("#0a5ca8"); // 
  jg_Div3.setStroke("2");
  jg_Div3.drawPolyline(new Array(coors1[0], coors2[0]+190, coors2[0]+190), new Array(coors1[1]+11, coors1[1]+11, coors2[1]-10));
   //jg_Div3.drawLine(coors1[0], coors1[1],coors2[0], coors2[1]);  
   
  var Xpoints = new Array(coors2[0]+187,coors2[0]+190,coors2[0]+194); // left points for arraw
  var Ypoints = new Array(coors2[1]-10,coors2[1],coors2[1]-10); // top points for arraw
  jg_Div3.fillPolygon(Xpoints, Ypoints);
  
  jg_Div3.paint(); // draws, in this case, directly into the document

}


// this function to get the data from the page with post method
// datasource variable is the page you will get the data from 
// divID variable is the div id of msg div that will display the msg
// Formname is the name of form that will be submitted
function getData1(dataSource, divID, Formname) 
      { 
	  		//loading("all","display");
		var params = "";
		
		   if (window.XMLHttpRequest) {
			XMLHttpRequestObject1 = new XMLHttpRequest();
		  } else if (window.ActiveXObject) {
			XMLHttpRequestObject1 = new ActiveXObject("Microsoft.XMLHTTP");
		  }
		  //
	  	  var x=document.forms[Formname].elements;
		// alert(x.length);
   	 
		   for (i=0; i<x.length;i++) 
		   {  //alert (x[i].type);
		   	//	 alert (x[i].getAttribute("name"));
			//	alert (x[i].value);
			if(x[i].getAttribute("name") == "name" && x[i].value == "" )
			{
				alert("Required field \""+x[i].getAttribute("name")+"\"");
				return;
				}
				 switch(x[i].type)
				 {
					case 'radio':
							var radioName = x[i].name; 
							 // var radio1 = document.forms[Formname].elements[checkName]; //alert (check) ;
							 /*var radio1 = document.forms[Formname].elements[radioName];
							  alert(radio1.length);
								for (j=0;j<radio1.length;j++) 
								{
									alert(radio1[j].value)
										if (radio1[j].checked) 
										{	alert(radio1[j].value);
											params += x[i].name+"="+trim(x[i].value)+"&";
										}
								}*/
								var halawa = document.forms[Formname].elements[radioName];
								for (j=0;j<halawa.length;j++) 
								{
									if (halawa[j].checked) 
									{
										// user_input = document.forms[0].radios[i].value;
										//alert(halawa[j].value);
										params += x[i].name+"="+trim(halawa[j].value)+"&";
									}
								}
						break
					case 'hidden':
						// this condition for avoid unwanted field from fckeditor
						
							/*if(x[i].getAttribute("name") == null)
							{
								//params += x[i].name+"="+trim(x[i].value)+"&"; 
							}
						
							if(x[i].getAttribute("name") == "details_fck") 
							{
								//params +="details_fck=&";
								var oEditor = FCKeditorAPI.GetInstance('details_fck') ;
								var data = oEditor.GetHTML();
								var DATA2 =	data.replace(/\&/gi, "zx_x_xz"); // this replacement to avoid " & " character 
								params +="details="+trim(DATA2)+"&"; 
							}
							else
							{
								//params += x[i].name+"="+trim(x[i].value)+"&"; 
							}*/
							
							// this condition for avoid unwanted field from fckeditor new 
							if(x[i].getAttribute("name") == "details_fck") 
							{	//alert("haaaaaaa");
								//params +="details_fck1=&";
								var oEditor = FCKeditorAPI.GetInstance('details_fck') ;
								var data = oEditor.GetHTML();
								var DATA3 =	data.replace(/\&/gi, "zx_x_xz"); // this replacement to avoid " & " character 
								params +="details="+trim(DATA3)+"&"; 
							}
							else if (x[i].getAttribute("name") == "details_fck1")
							{
								var oEditor = FCKeditorAPI.GetInstance('details_fck1') ;
								var data = oEditor.GetHTML();
								var DATA3 =	data.replace(/\&/gi, "zx_x_xz"); // this replacement to avoid " & " character 
								params +="details1="+trim(DATA3)+"&"; 
							}
							else
							{
								params += x[i].name+"="+trim(x[i].value)+"&"; 
							}
							/*if(x[i].getAttribute("name") == "details_fck1") 
							{	alert("haaaaaaa");
								//params +="details_fck1=&";
								var oEditor = FCKeditorAPI.GetInstance('details_fck1') ;
								var data = oEditor.GetHTML();
								var DATA3 =	data.replace(/\&/gi, "zx_x_xz"); // this replacement to avoid " & " character 
								params +="details1="+trim(DATA3)+"&"; 
							}
							else
							{
								params += x[i].name+"="+trim(x[i].value)+"&"; 
							}*/
						break
						
				/*	case 'hidden': // this condition for get the value of fckeditor
							switch(x[i].getAttribute("name"))
				 				{
									case 'null':
										
										break
									case 'details_fck':
												//var oEditor = FCKeditorAPI.GetInstance('details_fck') ;
												var data = x[i].value;
												var DATA2 =	data.replace(/\&/gi, "zx_x_xz"); // this replacement to avoid " & " character 
												params +="details_fck="+trim(DATA2)+"&"; 
										break		
									case 'details_fck1':
												//var oEditor = FCKeditorAPI.GetInstance('details_fck') ;
												var data = x[i].value;
												var DATA2 =	data.replace(/\&/gi, "zx_x_xz"); // this replacement to avoid " & " character 
												params +="details_fck1="+trim(DATA2)+"&";
											break
								}
						break*/	
					case 'checkbox':
					
							//alert(x[i].type);x[i].getAttribute("name")
							/*var checkname = x[i].name;
							check1 = document.forms[Formname].elements[checkname];
							alert(check1.length);
							
							for (counter = 0; counter < check1.length; counter++)
							{
								// If a checkbox has been selected it will return true
								// (If not it will return false)
								if (check1[counter].checked)
								{ 
									alert(check1[counter].value);
								}
								
							}*/
							// get every checkbox and check if it selected or not
							var checkName = x[i].name; 
							var check = document.forms[Formname].elements[checkName]; //alert (check) ;
							if (check.checked)
								{	//alert(x[i].name+"="+x[i].value);
									params += x[i].name+"="+trim(x[i].value)+"&"; 
								}
						break
					/*
					case 'text':
							//alert(x[i].type);
							//alert(x[i].value);
							//params += x[i].name+"="+x[i].value+"&"; 
						break
					case 'submit':
							alert(x[i].type);
						break
					case 'button':
							alert(x[i].type);
						break
					case 'file':
							
						break
					case 'image':
							alert(x[i].type);
						break
					case 'reset':
							alert(x[i].type);
						break	
					case 'password':
							alert(x[i].type);
						break	
						*/
					case 'select-one':
							/*
							var selectBox = x[i].name ;alert(selectBox) ;
							var	user_input = selectBox.options[selectBox.selectedIndex].value ;
							*/
							//alert(Formname) ;
							var selectName = x[i].name; 
							var selectBox = document.forms[Formname].elements[selectName]; //alert (selectName) ;
							var user_input = selectBox.options[selectBox.selectedIndex].value; // alert (selectName) ;
								params += x[i].name+"="+trim(user_input)+"&"; 
						break	
					/*case 'select-multiple':
							alert(x[i].type);
						break*/	
					default :
								params += x[i].name+"="+trim(x[i].value)+"&"; 
					break
				}
				
				/*if(x[i].getAttribute("name") == "details_fck") // this condition only for get the data from fckeditor
							{
								var oEditor = FCKeditorAPI.GetInstance('details_fck') ;
								var data = oEditor.GetHTML();
								var DATA2 =	data.replace(/\&/gi, "zx_x_xz"); // this replacement to avoid " & " character 
								params +="details="+trim(DATA2)+"&"; 
								 //alert(DATA2);
							} 
				if(x[i].getAttribute("name") == "details_fck1") // this condition only for get the data from fckeditor
							{
								var oEditor = FCKeditorAPI.GetInstance('details_fck1') ;
								var data = oEditor.GetHTML();
								var DATA3 =	data.replace(/\&/gi, "zx_x_xz"); // this replacement to avoid " & " character 
								params +="details1="+trim(DATA3)+"&"; 
								 //alert(DATA2);
							} 	*/		
						// alert(params);	
		   }
		   params += "&ms=' + new Date().getTime()";
		   
		   //alert(params);	
	  		//exit;
			
        if(XMLHttpRequestObject1) {
          var obj1 = document.getElementById(divID); 
		  //var name = document.getElementById("name").value;
		  //var pass = document.getElementById("pass").value; 
		  //var params = "name="+name+"&pass="+pass;
		  var url1 = dataSource;
		  
		  // alert (obj);
          XMLHttpRequestObject1.open("POST", url1, true); 
          XMLHttpRequestObject1.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
			XMLHttpRequestObject1.setRequestHeader("Content-length", params.length); 
			XMLHttpRequestObject1.setRequestHeader("Connection", "close"); 
			
          XMLHttpRequestObject1.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject1.readyState == 4 && XMLHttpRequestObject1.status == 200) 
			{ 	// alert(XMLHttpRequestObject1.responseText);
                obj1.innerHTML = XMLHttpRequestObject1.responseText;
			   //removeElement("all","load");
            } 
          } 

          XMLHttpRequestObject1.send(params); // null
        }
      }
	  
function fix_ajaxback_change_button(catId,catName,section)
{		
		var catField = document.getElementById("cat_id");
		catField.value = catId;
		
		var districtField = document.getElementById("district_no");
		var districtId = districtField.value ;
		
		// show print link
		var print_link = document.getElementById("print_link");
        print_link.innerHTML = "<a href=\"javascript:void  PrintThisPage()\">Imprimez</a>";
		
		// change iframe src for printing option
		var iframe = document.getElementById("print_iframe");
        iframe.src = 'print_results.php?districtId='+districtId+'&categoryId='+catId;
		
		var textShow = document.getElementById("textShow");
		textShow.innerHTML = "<strong>Vous cherchez dans l'arrondissement  <font color='red'>"+districtId+"</font> pour <font color='red'>"+catName+"</font></strong>";
		
		//var div = document.getElementById("submitButton");
		//var url = "'get_results.php'";
		//	div.innerHTML = '<img src="images/go.gif" align="left"  border="none" onclick="javascript:get_results('+url+');"/>';
		if(section == "moveeasy")
		{
			get_results('get_easy_results.php');
		}
		else
		{
			get_results('get_results.php');		
			}
}


// this function to fix the problem of back instead of myDrawFunction  draw line between two divs and assign variable to session and show some data 
function myDrawFunction_fix_back(firstDiv,targetDiv,drawDiv,selectedIdLink,categoryType,mainCategoryId)
{	
//alert (" "+firstDiv+" - "+targetDiv+" - "+drawDiv+" - "+selectedIdLink+" - "+categoryType+" - "+mainCategoryId+" ");
	var linksIds = new Array("linkPR1","linkPR2","linkPR3","linkPR4","linkPR5","linkPR6","linkPR7","linkPR8","linkPR9","linkPR10","linkPR11","linkPR12","linkPR13","linkPR14","linkPR15","linkPR16","linkPR17","linkPR18","linkPR19","linkPR20");
	
	for(i=0; i < linksIds.length; i++)
	{	//alert(linksIds[i]);
		 var link_id = document.getElementById(linksIds[i]);
		link_id.style.backgroundImage = '';
	}
	
	var bgimage = selectedIdLink.replace("linkPR","");
	
	// assign the number of district selected to district number field
	var district_number = document.getElementById("district_no");  //alert(district_number.value);
	district_number.value = bgimage;
	
	
	//set_session('add_district_session.php',bgimage); // set session for district id
	
	if(categoryType == "movein")
	{
		get_categories('get_easy_categories.php',categoryType,mainCategoryId,bgimage); // get categories depend on district id
	}
	else
	{
		get_categories('get_categories.php',categoryType,mainCategoryId,bgimage); // get categories depend on district id
		}
		
	if (bgimage < 10) // this condition to get the name of background image
	{
		bgimage = "0"+bgimage;
		}
	bgimage += ".gif"; // get the name of the photo
	var selected_link = document.getElementById(selectedIdLink);
	selected_link.style.backgroundImage = "url(\"images/map/"+bgimage+"\")";
	
  // get elements with its ID
  var Div1 = document.getElementById(firstDiv);	
  var Div2 = document.getElementById(targetDiv);
  var Div3 = document.getElementById(drawDiv);
  //Div1.style.background = '#cc0000';
  // get coordinats of two items
  var coors1 = findPos(Div1);
  var coors2 = findPos(Div2);	
  
  jg_Div3 = new jsGraphics(Div3);	
  jg_Div3.setColor("#0a5ca8"); // 
  jg_Div3.setStroke("2");
  jg_Div3.drawPolyline(new Array(coors1[0], coors2[0]+190, coors2[0]+190), new Array(coors1[1]+11, coors1[1]+11, coors2[1]-10));
   //jg_Div3.drawLine(coors1[0], coors1[1],coors2[0], coors2[1]);  
   
  var Xpoints = new Array(coors2[0]+187,coors2[0]+190,coors2[0]+194); // left points for arraw
  var Ypoints = new Array(coors2[1]-10,coors2[1],coors2[1]-10); // top points for arraw
  jg_Div3.fillPolygon(Xpoints, Ypoints);
  
  jg_Div3.paint(); // draws, in this case, directly into the document

}
