// Vehicle Search Functions
//

/* Global Variables */
var selectModel = -1;

function log_notify (what)
{
    try
    {
        pageTracker._trackEvent("Notify", what);
    }
    catch (err)
    {
        //alert("log_notify: Something went wrong: " + err.description);
    }
}

function log_view (what, label)
{
    try
    {
        pageTracker._trackEvent("View", what, label);
        pageTracker._trackPageview("/view/" + what);
    }
    catch (err)
    {
        //alert("log_view: Something went wrong: " + err.description);
    }
}

function log_search (make, model, type)
{
    try 
    {
        labelStr = make + "-" + model;
        pageTracker._trackEvent("Search", type, labelStr);
        pageTracker._trackPageview("/search/" + type);
    }
    catch (err) 
    {
        //alert("log_search: Something went wrong: " + err.description);
    }
}

function add_models(Vehicles) 
{
    var selectbox = document.getElementById("cboModel");
    var myObject = eval("(" + Vehicles + ")");
	for (var key in myObject)
	{
        if ((key == selectModel) && (selectModel != -1))
        {
            selectbox.options[selectbox.options.length] = new Option(myObject[key], key, true, true);
        }
        else
        {
            selectbox.options[selectbox.options.length] = new Option(myObject[key], key, false, false);
        }
	}
    selectModel = -1;
    return;
}
function add_makes(Vehicles) {
    var selectbox = document.getElementById("cboMake");

    var myObject = eval("(" + Vehicles + ")");
	for (var key in myObject)
	{
        selectbox.options[selectbox.options.length] = new Option(myObject[key], key, false, false);
	}
}

function removeAllOptions(selectbox)
{
	var i;
	for(i=selectbox.options.length-1;i>=0;i--)
	{
		selectbox.remove(i);
	}
}

function removeAllOptions(selectbox)
{
    selectbox.options.length = 0;
}
function get_makes() {
    var selectbox = document.getElementById("cboMake");
	removeAllOptions(selectbox);	

    selectbox.options[selectbox.options.length] = new Option("--- Select A Make ---", "0", true, true);

	x_show_makes(add_makes);
}

function get_models(index) {
    var selectbox = document.getElementById("cboModel");
    var makeSelect = document.getElementById("cboMake");
	removeAllOptions(selectbox);
	var make = makeSelect.options[index].value;
    selectbox.options[selectbox.options.length] = new Option("--- Select A Model ---", "Any", true, true);
    selectbox.options[selectbox.options.length] = new Option("Any Model", "Any", false, false);
	x_show_models(make, add_models);
    
}

/*** functions used to display search results and handle events on the adverts ***/

function display_search_results(display)
{
	document.getElementById("InfoSection").innerHTML = display;
//    document.getElementById("AdvancedSearch").style.display = "block";
}

function toggle_extended_search ()
{
    var node =  document.getElementById("AdvancedSearch")
	var blah  =  document.getElementById("lnkToggleExtSearch");
    if (node)
    {
    	if (node.style.display == "block")
    	{
    		node.style.display = "none";
            blah.innerText = "More Options >>";
    	}
        else
        {
        	node.style.display = "block";
	        blah.innerText = "Less Options <<";
        }
    }
}

function manageTextBox(txtBox, defaultValue, clear)
{
    var currValue = document.getElementById(txtBox).value;
    if (clear == 1)
    {
        document.getElementById(txtBox).value = "";
    }
    else if (currValue == "") 
    {
        document.getElementById(txtBox).value = defaultValue;
    }
}
function set_postcode()
{
	var PostcodeValue = document.getElementById("txtPostcode").value;
	if (PostcodeValue == "")
	{
		document.getElementById("txtPostcode").value = "Postcode";
	}
}
function clear_postcode()
{
	var PostcodeValue = document.getElementById("txtPostcode").value;
	if (PostcodeValue == "Postcode")
	{
		document.getElementById("txtPostcode").value = "";
	}
}
function do_offset_search(MakeId, ModelId, MaxPrice, Postcode, sid, offset, ExtDist, Trade, Mileage, Age, Keyword, Sort, DisplayType)
{
    GlobalVehicleDivOpen = 0;
	document.getElementById("ResultsContainer").innerHTML = "<STRONG><IMG SRC=\'/images/ajax-loader.gif\' ALT=\'Loading\'/> Searching...<\/STRONG>";
	x_vehicle_search(sid, MakeId, ModelId, MaxPrice, Postcode, offset, ExtDist, Trade, Mileage, Age, Keyword, Sort, 0, DisplayType, display_search_results);
    log_search(MakeId, ModelId, "nav");
}

function do_simple_search(MakeId, ModelId, Sid)
{
	var Postcode = document.getElementById("txtPostcode").value;
    var cMake = document.getElementById("cboMake");

    if (cMake)
    {
        var numMakes = cMake.length;
        var i;
        for (i = 0; i < numMakes; i++)
        {
            if (cMake.options[i].value == MakeId)
            {
                cMake.selectedIndex = i;
                selectModel = ModelId;
                get_models(i);
            }
        }
    }

	document.getElementById("InfoSection").innerHTML = "<STRONG><IMG SRC=\'/images/ajax-loader.gif\' ALT=\'Loading\'/> Searching...<\/STRONG>";

	x_vehicle_search(Sid, MakeId, ModelId, "Any", Postcode, 0, "30", "both", "0", "0", "", 0, 0, "Std", display_search_results);
    log_search(MakeId, ModelId, "simple");
}

function do_search(sid)
{
	var MakeId = document.getElementById("cboMake").value;
	var ModelId = document.getElementById("cboModel").value;
	var MaxPrice = document.getElementById("cboMaxPrice").value;
	var Postcode = document.getElementById("txtPostcode").value;
    
    var ExtDist = document.getElementById("cboDistance").value;
    var Trade = document.getElementById("cboSeller").value;
    var Mileage = document.getElementById("cboMileage").value;
    var Age = document.getElementById("cboAge").value;
    var Keyword = document.getElementById("txtKeyword").value;
    var Sort = "none";
    
    if (Postcode == "Postcode")
    {
        Postcode = "";
    }

    GlobalVehicleDivOpen = 0;
	document.getElementById("InfoSection").innerHTML = "<STRONG><IMG SRC=\'/images/ajax-loader.gif\' ALT=\'Loading\'/> Searching...<\/STRONG>";

	x_vehicle_search(sid, MakeId, ModelId, MaxPrice, Postcode, 0, ExtDist, Trade, Mileage, Age, Keyword, Sort, 0, "Std", display_search_results);
    log_search(MakeId, ModelId, "start");
}
function display_ext_data(display)
{
	for (var key in display)
	{
		var wnd = document.getElementById("EditWindowContent");
        wnd.innerHTML = display[key];  // (key)
		break; // only do this once.. even if more data is returned.. for now.. 
	}

}
function display_msg(msg)
{
	for (var key in msg)
	{
		alert(msg["TYPE"] + ": " + msg["MSG"]);
		break;
	}
}
function bookmark_vid_cb(res)
{
//    alert(res["TYPE"] + ": " + res["MSG"]);
    if (res["TYPE"] == "OK")
    {
        img = document.getElementById("bmk_" + res["REG"]);
        img.src = "/images/accept.png";                        
        img.onclick = "bookmark_vid(\'" + res["REG"] + "\', \'" + res["Uid"] + "\', this, " + res["BookmarkId"] + ");";
    }
    else if (res["TYPE"] == "REMOVED")
    {
        img = document.getElementById("bmk_" + res["REG"]);
        img.src = "/images/add.png";
        img.onclick = "bookmark_vid(\'" + res["REG"] + "\', \'" + res["Uid"] + "\', this, 0);";                        
    }
}
function send_friend_email_cb(res)
{
    if (res["TYPE"] == "OK")
    {
        expand_div(res["VID"], 0);
        alert("Successfully Sent Message");
    }
    else if (res["TYPE"] == "ERR")
    {
        document.getElementById("btnSend").disabled = false;
        alert(res["TYPE"] + ": " + res["MSG"]);
    }
}
function send_owner_email_cb(res)
{
    if (res["TYPE"] == "OK")
    {
        expand_div(res["VID"], 0);
        alert("Successfully Sent Message");
    }
    else if (res["TYPE"] == "ERR")
    {
        document.getElementById("btnSend").disabled = false;
        alert(res["TYPE"] + ": " + res["MSG"]);
    }
}
function bookmark_vid(vid, uid, img, bk_id)
{
	if (uid == 0)
    {
        alert("Please Log In To Enable Favourites");
    }
    else
    {
        img.src = "/images/small-loader.gif";
		x_bookmark_vehicle(vid, uid, bk_id, bookmark_vid_cb);
    }
}
function show_email_cb(res)
{
    document.getElementById("EditWindowContent").innerHTML = res["MSG"];
}
function swap_image(image_src, image_div)
{
	document.getElementById(image_div).innerHTML = "<IMG SRC=\'" + image_src + "\' WIDTH=\"440px\" HEIGHT=\"330px\" ALT=\"\"/>";
}
function close_ext_data()
{
    objDiv = document.getElementById("jco-overlay");
    contentDiv = document.getElementById("jco-lightbox");
    objDiv.style.display = "none";
    contentDiv.style.display = "none";                
}
function show_email(vehicle_id)
{
    x_show_send_friend(vehicle_id, show_email_cb);
    document.getElementById("EditWindowContent").innerHTML = "<STRONG><IMG SRC=\'/images/ajax-loader.gif\' ALT=\'Loading\'> Loading...<\/STRONG>";
    document.getElementById("outerDataContainer").style.width = "60%";
}

function validate_and_send_friend(vehicle_id)
{
    var name = document.getElementById("txtName").value;
    var senderEmail = document.getElementById("txtSrcEmail").value;
    var destEmail = document.getElementById("txtDestEmail").value;
    var msg = document.getElementById("txtMsg").value;
    if (name == "") {
        alert("Please Enter Your Name");
        return;
    }
    if ((senderEmail == "") || (senderEmail.indexOf("@") == -1)) {
        alert("Please Enter Your Email Address");
        return;
    }
    if ((destEmail == "") || (destEmail.indexOf("@") == -1)) {
        alert("Please Enter Your Friends Email Address");
        return;
    }
    // got this far, email the friend
    document.getElementById("btnSend").disabled = true;
    x_send_friend_email(name, senderEmail, destEmail, msg, vehicle_id, send_friend_email_cb);
    /* Log this with google analytics */
    log_notify("email_friend");
}

function show_owner_email(vehicle_id)
{
    x_show_send_owner(vehicle_id, show_email_cb);
    document.getElementById("EditWindowContent").innerHTML = "<STRONG><IMG SRC=\'/images/ajax-loader.gif\' ALT=\'Loading\'> Loading...<\/STRONG>";
    document.getElementById("outerDataContainer").style.width = "60%";
}

function validate_and_send_owner(vehicle_id)
{
    var name = document.getElementById("txtName").value;
    var senderEmail = document.getElementById("txtSrcEmail").value;
    var msg = document.getElementById("txtMsg").value;
    if (name == "") {
        alert("Please Enter Your Name");
        return;
    }
    if ((senderEmail == "") || (senderEmail.indexOf("@") == -1)) {
        alert("Please Enter Your Email Address");
        return;
    }
    // got this far, email the friend
    document.getElementById("btnSend").disabled = true;
    x_send_owner_email(name, senderEmail, msg, vehicle_id, send_owner_email_cb);
    /* Log this with google analytics */
    log_notify("email_owner");
}

function expand_div(div_id, distance)
{
    var arrayPageSize = getPageSize();

    document.getElementById("outerDataContainer").style.width = "80%";
    objDiv = document.getElementById("jco-overlay");
    contentDiv = document.getElementById("jco-lightbox");

    objDiv.style.width = arrayPageSize[0] + "px";
    objDiv.style.height = arrayPageSize[1] + "px";

    objDiv.style.display = "block";

    contentDiv.style.top = document.body.scrollTop + 50;

    contentDiv.style.display = "block";
    document.getElementById("EditWindowContent").innerHTML = "<STRONG><IMG SRC=\'/images/ajax-loader.gif\' ALT=\'Loading\'> Loading...<\/STRONG>";

    x_show_ext_vehicle_data(div_id, distance, display_ext_data);
    log_view("extended_data", div_id);
}


