﻿//<reference path="scripts/jquery-1.3.2.js" />

function TTRemoteSearch(options){
	//this.regionsList = new Array();

	//Initializes form controls' values.
    this.initialize = function(options) {
        this.mergeOptions(options);
        this.populateRegions();
        jQuery("#Target").val(this.regionsPageName);
        jQuery("#frmIBEMainForm").attr('action', this.websiteURL);
        
    };

	this.mergeOptions = function(options){
		this.departureDateOffset = options.departureDateOffset ? options.departureDateOffset : 0;
		this.returnDateOffset = options.returnDateOffset ? options.returnDateOffset : 30;
		this.regionsPageName = options.regionsPageName ? options.regionsPageName : "Regions";
		this.hotelsPageName = options.hotelsPageName ? options.hotelsPageName  : "Hotels";
		this.websiteURL = options.websiteURL,
	    this.regionsList = options.regionsList;
	};

	//Populates regions select using values from this.regionsList array.
	this.populateRegions = function(destinationID) {
	    var regionsSelect = document.getElementById("Region");
	    if (regionsSelect == null)
	        return;
	    regionsSelect.length = 0;
	    regionsSelect.options[regionsSelect.length] = new Option("Any", "");
	    for (var i = 0; i < this.regionsList.length; i++) {
	        if (destinationID == null || destinationID == '' || destinationID == this.regionsList[i].destinationID)
	            regionsSelect.options[regionsSelect.length] = new Option(this.regionsList[i].regionName, this.regionsList[i].regionID);
	    }
	};

	//Selects destination based on regionID. Called when region select value changes.
	this.setSelectedDestination = function(regionID){
		if(regionID=='')
			return;
		var destinationSelect = document.getElementById("Group");
		if(destinationSelect==null)
			return;
		if(regionID==null||regionID==''){
			destinationSelect.selectedIndex = 0;
		}
		var destinationID = -1;
		for (var i = 0; i < this.regionsList.length; i++) {
			if(this.regionsList[i].regionID == regionID){
				destinationID = this.regionsList[i].destinationID;
				break;
			}
		}
		if(destinationID==-1)
			return;
		for(var i=0;i<destinationSelect.length;i++){
			if(destinationSelect.options[i].value==destinationID){
				destinationSelect.selectedIndex = i;
				break;
			}
		}
		jQuery("#Target").val(this.hotelsPageName);
    };
    
    //Adds 'offsetDays' to the 'dateToOffset' date or today's date, if 'dateToOffset' is null
	this.getOffsetDate = function(dateToOffset, offsetDays) {	    
	    if (dateToOffset != "") {
	        var d = dateToOffset;
	    } else {
	        var d = new Date();
	    }
	   	    	    	    
	    d.setDate(d.getDate() + offsetDays);    
	    return d;
	};
};
