//**********************************************************/
// Copyright (c) Apnasoft Ltd 2008
// 
// All rights reserved
// This software is protected by international copyright laws
// 
// Apnasoft Advance Property Management Engine
//**********************************************************/

var fav_properties = new Array();
var showcase_properties = new Array();
var next_showcase_property = 0;
var search_box_initialised = false;
var short_list_initialised = false;
var latest_property_updates = false;
var rendered_property_showcase = false;

function apply_filter() {
    // Get all the filter status boxes
    var frm = document.getElementById('filter_frm');
    var fil_arr = new Array();
    var fil_str = "";
    var fil_max_rent = "";
    if (frm) {
        for (var i=0; i<frm.length; i++) {
	       switch (frm.elements[i].type) {	                       
                case "select-one":
                    filter_indx = Number(frm.elements[i].name.substr(7));
                    fil_arr[filter_indx] = frm.elements[i].value;
                    break;                                                         
                    //"filter_".$f
                default:
                    break;
           }
        }
        
        fil_str = fil_arr[0];
        for(var a=1; a<fil_arr.length; a++) {
            fil_str += ","+fil_arr[a];
        }
        
        url = '?filter='+fil_str;
        window.location.href = url;        
    }
}

function show_print_page(url) {
    var ScreenWidth=window.screen.width;
    var ScreenHeight=window.screen.height;
    var movefromedge=0;
    placementx=(ScreenWidth/2)-((600)/2);
    placementy=(ScreenHeight/2)-((700+50)/2);
    WinPop=window.open(url,"","width=600,height=700,toolbar=0,location=0,directories=0,status=0,scrollbars=1,menubar=0,resizable=1,left="+placementx+",top="+placementy+",screenX="+placementx+",screenY="+placementy+",");
}

function create_property_showcase() {        
    var sp = document.getElementById('latest-property');
    if (showcase_properties.length == 0) {
        sp.innerHTML = "<br><br><center>Loading...</center>";
    }
    else {    
        //alert("change showcase to ...."+next_showcase_property);
        sp.innerHTML = showcase_properties[next_showcase_property];
        next_showcase_property++;
        if (next_showcase_property >= showcase_properties.length) {
            next_showcase_property = 0;        
        }        
    }
    setTimeout('create_property_showcase()', 5000);
}

function search_properties() {
    // Get all the filter status boxes
    // search-property- G_CAT_AREA - G_CAT_TYPE - num beds - max rent
    var frm = document.getElementById('search_frm');
    var search_area = document.getElementById('filter_area').value; 
    var search_type = document.getElementById('filter_type').value;
    var search_num_rooms = document.getElementById('numRooms').value;
    var search_max_rent = document.getElementById('txtMaxRent').value;                
    url = 'search-property-'+search_area+'-'+search_type+'-'+search_num_rooms+'-'+search_max_rent;
    window.location.href = url;    
}

function show_loading() {
}

function hide_loading() {
}

function initPage() {
    if (!short_list_initialised) {
        short_list_initialised = true;
        showShortlist();
    }
    /*
	if (!search_box_initialised) {
	    search_box_initialised = true;
	    load_page('search_box','ajax.php?o=search-data');	                    	   
	}
	*/
	/*
    if (!latest_property_updates) {
        latest_property_updates = true;		
	    updateLatestProperty();
	}	
	*/
	if (!rendered_property_showcase) {
	    rendered_property_showcase = true;
	    create_property_showcase();
    }
}

function addPropertyToShortlist(pid, addr, price) {
	// Now update the shortlist
	var tbl = document.getElementById('fav_properties');
  	var lastRow = tbl.rows.length;
  	var row = tbl.insertRow(lastRow);	
  
  	// left cell
  	var cellLeft = row.insertCell(0);
	cellLeft.height = "57";
  	cellLeft.innerHTML = "<div align='center'><a href='#' onclick=\"load_page('content-box','ajax.php?o=detail&p="+pid+"');return false;\" class='shortlist-link'>"+addr+"<br />&pound;"+price+"</a></div>";
	
	// right cell
	var cellRight = row.insertCell(1);
  	cellRight.innerHTML = "<a href='#' onclick='delFavProperty("+pid+", "+lastRow+"); return false;'><img border='0' src='images/cross.gif' alt='Remove property from shortlist' /></a>";  		
}

function SendPropertyEnquiry() {
    var frm = document.getElementById('frmSendEnquiry');
    var prop_addr = "";
    var props = "";
    var prop_ids = "";
    for(var p=0; p<fav_properties.length; p++) {
	   if (fav_properties[p]) {
	       if (prop_addr.length > 0) {
	           prop_addr += "#";
           }
           if (prop_ids.length > 0) {
	           prop_ids += "#";
           }
	       prop_addr += fav_properties[p].addr;
           prop_ids += fav_properties[p].pid; 	       
	   }
	}
	props = prop_addr + "^" + prop_ids;
	
	var fName = document.getElementById('txtName');
	var fTele = document.getElementById('txtTele');
	var fEmail = document.getElementById('txtEmail');
	var fProps = document.getElementById('txtProperties');
	
	if (fName.value.length > 0) {
	   if ((fTele.value.length == 0) && (fEmail.value.length == 0)) {
	       alert("Please enter your telephone number OR email address.");
       }
       else {
           fProps.value = props;
           post_enquiry(frm);   
           alert("Thank you for your enquiry, we will contact you soon.");        
           
           var tbl = document.getElementById('fav_properties');    	
	       while(tbl.rows.length > 0) {
                tbl.deleteRow(0);
           }		
		   // Hide if no favourites
		   var fav_tbl = document.getElementById('fav_panel');
		   fav_tbl.style.display = "none";
		   fav_properties = new Array();	
       }
	}
	else {
	   alert("Please fill in your name");
	   fName.focus();
    }    	        
}

function updateLatestProperty() {        
    load_property('latest-property','ajax.php?o=get-hot-property');
}

function showShortlist() {
	if (fav_properties.length > 0) {		
		for(var p=0; p<fav_properties.length; p++) {
			if (fav_properties[p]) {
				addPropertyToShortlist(fav_properties[p].pid,fav_properties[p].addr,fav_properties[p].price);
			}
		}
		
		// Make sure the favourites panel is visible
		var fav_tbl = document.getElementById('fav_panel');
		fav_tbl.style.display = "";
	}
}

function addFavProperty(pid, addr, price) {
    exists = false;
    // Ensure it's not already added
	for(var p=0; p<fav_properties.length; p++) {
	   if (fav_properties[p]) {
	       if (fav_properties[p].pid == pid) {
	           alert("Property is already in your short list");
	           exists = true;
	           break;
           }
	   }
	}
	if (exists) {
	    return false;
    }
	
	send_cmd("ajax.php?o=add_f_property&p="+pid+"&addr="+escape(addr)+"&price="+escape(price));
	
	var o = new Object();
	o.pid = pid;
	o.addr = addr;
	o.price = price;
	
	fav_properties.push(o);

	addPropertyToShortlist(pid, addr, price);
	
	// Make sure the favourites panel is visible
	var fav_tbl = document.getElementById('fav_panel');
	fav_tbl.style.display = "";
	
	return false;
}

function delFavProperty(pid, row_id) {
	send_cmd("ajax.php?o=del_f_property&p="+pid);
	
	var new_favourites = new Array();
	for(var p=0; p<fav_properties.length; p++) {
	   if (fav_properties[p]) {
	       if (fav_properties[p].pid == pid) {
	           // This is the one to delete	           	           
           }
           else {
               new_favourites.push(fav_properties[p]);
           }
	   }
	}
	fav_properties = new_favourites;
		
	var tbl = document.getElementById('fav_properties');    	
	// Is it the last row?
	if (tbl.rows.length == 1) {		
		// Hide if no favourites
		var fav_tbl = document.getElementById('fav_panel');
		fav_tbl.style.display = "none";
	}
	tbl.deleteRow(row_id);
}