/* Create a new XMLHttpRequest object to talk to the Web server */
var xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    xmlHttp = false;
  }
}
@end @*/

if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
  xmlHttp = new XMLHttpRequest();
}

function clearForm() {
	document.getElementById("att_str").innerHTML = "";
	document.getElementById("att_str").options[0] = new Option("----------------All---------------","0");
	clearAllCheckboxes();
}

function getRegionByState(obj) {
	clearForm();
	var idx = obj.selectedIndex;
	var selectOptions = document.getElementById("att_str");
	if (idx==0) {
		clearForm();
		return;
	}
	if ((idx == null) || (idx == "")) return;
	var stateID = obj.options[idx].value;
	if ((stateID == null) || (stateID == "")) return;

	if (isInteger(stateID)) {	
		var url = "/amfeatures/travelplanner/getPlaces.asp?state=" + escape(stateID);	
		xmlHttp.open("GET", url, true);
		xmlHttp.onreadystatechange = updatePlaces;
		xmlHttp.send(null);			
	} else {
		return;
	}
}

function updatePlaces() {
	var selectOptions = document.getElementById("att_str");
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			var response_place = xmlHttp.responseText.split("|");
			var i;
			for (i=0;i<response_place.length; i++) {
				var tmp_response = response_place[i].split(",");
				var response_id = tmp_response[0];
				var response_place_name = tmp_response[1];
				selectOptions.options[i] = new Option(response_place_name,response_id);
			}
		} else if (xmlHttp.status == 404) {
			alert ("Requested URL is not found.");
			window.location = "/";
		} else if (xmlHttp.status == 403) {
			alert("Access denied.");
			window.location = "/";
		}
	}
}

function getOptions(obj) {
	var idx = obj.selectedIndex;
	if (idx==0) {
		clearAllCheckboxes();
		return;
	}	
	if ((idx == null) || (idx == "")) return;
	var placeID = obj.options[idx].value;
	if ((placeID == null) || (placeID == "")) return;
	if (isInteger(placeID)) {	
		var url = "/amfeatures/travelplanner/getPlaceOptions.asp?place=" + escape(placeID);	
		xmlHttp.open("GET", url, true);
		xmlHttp.onreadystatechange = updateOptions;
		xmlHttp.send(null);			
	} else {
		return;
	}	
}

function updateOptions() {	
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			var response_place = xmlHttp.responseText.split("|");
			var place_types = response_place[0].split(",");
			var place_activities = response_place[1].split(",");
			var thecheckbox;
			var bool_match;
			clearAllCheckboxes();
			for (var i=1;i<13;i++) {
				bool_match = false;
				thecheckbox = document.getElementById("cat_sel".concat(i));
				for (var x=0;x<place_types.length;x++) {
					if (i==place_types[x]) {
						bool_match = true;
					}
					if (bool_match) {
						thecheckbox.checked=true;
						thecheckbox.disabled=false;
					} else {
						thecheckbox.checked=false;
						thecheckbox.disabled=true;
					}
				}
			}
			for (var j=1;j<7;j++) {
				bool_match = false;
				thecheckbox = document.getElementById("act_sel".concat(j));
				for (var y=0;y<place_activities.length;y++) {
					if (j==place_activities[y]) {
						bool_match = true;
					}
					if (bool_match) {
						thecheckbox.checked=true;
						thecheckbox.disabled=false;
					} else {
						thecheckbox.checked=false;
						thecheckbox.disabled=true;
					}			
				}
			}			
		} else if (xmlHttp.status == 404) {
			alert ("Requested URL is not found.");
			window.location = "/";
			
		} else if (xmlHttp.status == 403) {
			alert("Access denied.");
			window.location = "/";
		}
	}
}

function add2MyTrip(checkObj) {

	var searched_id = checkObj.value;
	if ((searched_id == null) || (searched_id == "")) return;
	if (isInteger(searched_id)) {
		var url = "/mystar/travelplanner/savePlace2Profile.asp?id=" + escape(searched_id);	
		xmlHttp.open("GET", url, true);
		xmlHttp.onreadystatechange = updateSearchResultWithSaved;
		xmlHttp.send(null);
	} else {
		return;
	}
}

function updateSearchResultWithSaved() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			var response_saved = xmlHttp.responseText.split(",");
			if ((response_saved == null) || (response_saved == "")) return;
			if (response_saved[0] == "OK") {
				alert(response_saved[1]);
				alert("saved!");
			} else {
				alert("error saved!");
			}			
		} else if (xmlHttp.status == 404) {
			//Requested data is not found
			alert(xmlHttp.responseText);
			var parentframe = window.parent.document.getElementById('popUpDiv');
			var parentblanket = window.parent.document.getElementById('blanket');
			parentframe.style.display = 'none';			
			parentblanket.style.display = 'none';
		} else if (xmlHttp.status == 403) {
			//Access denied
			alert(xmlHttp.responseText);
			var parentframe = window.parent.document.getElementById('popUpDiv');
			var parentblanket = window.parent.document.getElementById('blanket');
			parentframe.style.display = 'none';
			parentblanket.style.display = 'none';
		}
	}
}

function clearAllCheckboxes() {
	var thecheckbox;
	for (var i=1;i<13;i++) {
		thecheckbox = document.getElementById("cat_sel" + i);
		thecheckbox.checked=false;
		thecheckbox.disabled=false;
	}
	for (var j=1;j<7;j++) {
		thecheckbox = document.getElementById("act_sel" + j);
		thecheckbox.checked=false;
		thecheckbox.disabled=false;
	}
}

/* Function to toggle between the three sections in the TravelPlanner main page: Plan, MyTrips, MyBookings */
function tp_toggle(objID) {
	var box_plan = document.getElementById("tp_plan").style;
	var box_trips = document.getElementById("tp_mytrips").style;
	//var box_bookings = document.getElementById("tp_mybookings").style;
	
	if (document.getElementById) {
		if (objID == "tp_plan") {
			box_plan.display = "block";
			box_trips.display = "none";
			//box_bookings.display = "none";
		} else if (objID == "tp_mytrips") {
			box_plan.display = "none";
			box_trips.display = "block";
			//box_bookings.display = "none";		
		} else if (objID == "tp_mybookings") {
			box_plan.display = "none";
			box_trips.display = "none";
			//box_bookings.display = "block";		
		} else {
			box_plan.display = "block";
			box_trips.display = "none";
			//box_bookings.display = "none";		
		}
	}
}

function isInteger (s) {
    var i;
    if (isEmpty(s))
    if (isInteger.arguments.length == 1) return 0;
    else return (isInteger.arguments[1] == true);

    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }    
    return true;
}

function isEmpty(s) {
	return ((s == null) || (s.length == 0));
}

function isDigit (c) {
	return ((c >= "0") && (c <= "9"));
}

function toggle(div_id) {
	var el = document.getElementById(div_id);
	if (( el.style.display == 'none' ) || ( el.style.display == '' )) {	el.style.display = 'block';}
	else {el.style.display = 'none';}
	reloadIFrame();
}

function reloadIFrame() {
	var iframeEl = document.getElementById('popup_iframe');
	if (iframeEl.style.display == 'none') {
		loadIframeSource('/amfeatures/travelplanner/blank_iframe.asp');
	}
}

function blanket_size(popUpDivVar,calledPage) {
	var viewportheight;
	var blanket_height;
	if (typeof window.innerWidth != 'undefined') {
		viewportheight = window.innerHeight;
	} else {
		viewportheight = document.documentElement.clientHeight;
	}
	if ((viewportheight > document.body.parentNode.scrollHeight) && (viewportheight > document.body.parentNode.clientHeight)) {
		blanket_height = viewportheight;
	} else {
		if (document.body.parentNode.clientHeight > document.body.parentNode.scrollHeight) {
			blanket_height = document.body.parentNode.clientHeight;
		} else {
			blanket_height = document.body.parentNode.scrollHeight;
		}
	}
	var blanket = document.getElementById('blanket');
	blanket.style.height = blanket_height + 'px';
	var popUpDiv = document.getElementById(popUpDivVar);
	if (calledPage == 'search') {
		popUpDiv.style.top = '620px';
		popUpDiv.style.height = '450px';
	} else if (calledPage == 'create') {
		popUpDiv.style.top = '120px';
		popUpDiv.style.height = '500px';	
		popUpDiv.style.left = '100px';
		popUpDiv.style.width = '700px';
	} else if (calledPage == 'MyTrip') {
		popUpDiv.style.top = '250px';
		popUpDiv.style.height = '450px';		
	} else {
		popUpDiv.style.top = '620px';
		popUpDiv.style.height = '450px';	
	}
}

function window_pos(popUpDivVar) {
	var viewportwidth;
	var window_width;
	if (typeof window.innerWidth != 'undefined') {
		viewportwidth = window.innerHeight;
	} else {
		viewportwidth = document.documentElement.clientHeight;
	}
	if ((viewportwidth > document.body.parentNode.scrollWidth) && (viewportwidth > document.body.parentNode.clientWidth)) {
		window_width = viewportwidth;
	} else {
		if (document.body.parentNode.clientWidth > document.body.parentNode.scrollWidth) {
			window_width = document.body.parentNode.clientWidth;
		} else {
			window_width = document.body.parentNode.scrollWidth;
		}
	}
	var popUpDiv = document.getElementById(popUpDivVar);
	window_width=(window_width/2)-300;
	popUpDiv.style.left = window_width + 'px';
}

function popup(windowname) {
	var iframeEl = document.getElementById('popup_iframe');
	var place_str = document.getElementById('place_str').value;
	var att_str = document.getElementById('att_str').value;
	var cat_sel_values = "";
	for (var i=0; i < document.frm_search_trip.cat_sel.length; i++)
	{
	if (document.frm_search_trip.cat_sel[i].checked)
		{
		cat_sel_values = cat_sel_values + document.frm_search_trip.cat_sel[i].value + "+";
		}
	}
	var act_sel_values = "";
	for (var i=0; i < document.frm_search_trip.act_sel.length; i++) {
		if (document.frm_search_trip.act_sel[i].checked) {
			act_sel_values = act_sel_values + document.frm_search_trip.act_sel[i].value + "+";
		}
	}
	var url_string = "/amfeatures/travelplanner/search_results.asp?pl="+escape(place_str)+"&at="+escape(att_str)+"&ca="+escape(cat_sel_values)+"&ac="+escape(act_sel_values);
	loadIframeSource(url_string);
	blanket_size(windowname,'search');
	window_pos(windowname);
	toggle('blanket');
	toggle(windowname);
}

function popup_close(windowname) {
	reloadIFrame();
	toggle('blanket');
	toggle(windowname);
}

function popup_createtrip(windowname) {
	var iframeEl = document.getElementById('popup_iframe');	
	var search_txt = document.getElementById('search_txt').value;
	var selected_place_id = document.getElementById('selected_place_id').value;	
	var url_string = "/amfeatures/travelplanner/create_trip.asp?q="+escape(search_txt)+"&i="+escape(selected_place_id);
	loadIframeSource(url_string);
	blanket_size(windowname,'create');
	window_pos(windowname);
	toggle('blanket');
	toggle(windowname);
}

function loadIframeSource(url_string) {
	var iframeEl = document.getElementById('popup_iframe');	
	iframeEl.src = url_string;
}

function confirmDelTrip(objId) {
	var answer = confirm("Delete this saved profile?");
	if (answer) {
		var url = "/mystar/travelplanner/delThisTrip.asp?id=" + escape(objId);
		xmlHttp.open("GET", url, true);
		xmlHttp.onreadystatechange = delTripRow;
		xmlHttp.send(null);
	} else {
		return;
	}
}

function delTripRow() {
	var counter = 0;
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			var response_saved = xmlHttp.responseText.split(",");
			if ((response_saved == null) || (response_saved == "")) return;
			var response_status = response_saved[0];
			var response_value = response_saved[1];
			if (response_status == "ok") {
				var tableRow = document.getElementById('trip_row_' + response_value);
				document.getElementById('tbl_saved_trips').deleteRow(tableRow.sectionRowIndex);	
				tp_init_trips();
			} else {
			}
		}
	}
}

function editTrip(objId) {
	var iframeEl = document.getElementById('popup_iframe');	
	var url_string = "/mystar/travelplanner/editMyProfile.asp?id="+escape(objId);
	loadIframeSource(url_string);
	blanket_size('popUpDiv','MyTrip');
	window_pos('popUpDiv');
	toggle('blanket');
	toggle('popUpDiv');	
}

function viewTrip(objId) {
	var iframeEl = document.getElementById('popup_iframe');	
	
	var url_string = "/mystar/travelplanner/viewMyProfile.asp?id="+escape(objId);
	loadIframeSource(url_string);
	blanket_size('popUpDiv','MyTrip');
	window_pos('popUpDiv');
	toggle('blanket');
	toggle('popUpDiv');		
}

function tp_init_trips() {
	var url = "/mystar/travelplanner/getMyTrips.asp";
	xmlHttp.open("GET", url, true);
	xmlHttp.onreadystatechange = updateMyTrips;
	xmlHttp.send(null);
}

function updateMyTrips() {
	var trip_div = document.getElementById("tp_mytrips");
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			var response_saved = xmlHttp.responseText;
			if ((response_saved == null) || (response_saved == "")) return;
			var searchRegExp = /login_expire.asp|http-equiv=\"REFRESH\"/;
			var matchPos = response_saved.search(searchRegExp);
			if (matchPos != -1) {
				window.location = "/members/login_expire.asp?cb=http://allmalaysia.info/amfeatures/travelplanner/&vcid=Sites49&uid=";
				return;
			}
		}
	} else if ((xmlHttp.readyState == 1) || (xmlHttp.readyState == 2) || (xmlHttp.readyState == 3)) {
		response_saved = "<p>Page is loading.... <img src=\"/images/common/wait30trans.gif\" alt=\"\" /></p>";
	}
	trip_div.innerHTML = response_saved;
}

function checkLoginExpired(server_response) {
	var searchRegExp = /login_expire.asp|http-equiv=\"REFRESH\"/;
	var matchPos = server_response.search(searchRegExp);
	if (matchPos == -1) {
		return false;
	} else {
		return true;
	}
}