// JavaScript Document
var RCurl = '';
var RCValues = '';
var RCx, RCy;
function GetNode(object) {
	if(object) {
		return object.nodeValue;
	}
	return '';
}

function AddReviewLogin() {
	email = document.getElementById('RV_Login_Email').value;
	password = document.getElementById('RV_Login_Password').value;
	if(!email||!password) {
		alert('Please enter your email address and password.');		
	}else{
		sURL = '/includes/reviews/reviews_newuser.asp?email='+encodeURI(email)+'&password='+encodeURI(password)+'&resortid='+Review_CurrentResortID;
		var sResponse = readFile(sURL);
		if(window.DOMParser) {
			var parser=new DOMParser();
			var XMLDocTemp=parser.parseFromString(sResponse,"text/xml");
		}else{
			var XMLDocTemp=new ActiveXObject("Microsoft.XMLDOM");
			XMLDocTemp.async='false';
			XMLDocTemp.loadXML(sResponse);
		}
		sStatus = GetNode(XMLDocTemp.getElementsByTagName("status")[0].childNodes[0]);
		if(sStatus.toLowerCase()=='ok') {
			iUserID = parseFloat(GetNode(XMLDocTemp.getElementsByTagName("userid")[0].childNodes[0]));
			Rating_Step2();
			document.getElementById('RV_Login_Email').value = '';
			document.getElementById('RV_Login_Password').value = '';
		}else if(sStatus.toLowerCase()=='alreadyrated') {
			alert('You have already rated this destination.\nClick OK to close this window.');
			location.href=window.location.href;
		}else{
			alert('Incorrect email address or password');			
		}
	}
}
function RV_AddReviewNewUser() {
	email = document.getElementById('RV_NewUser_Email').value;
	password = document.getElementById('RV_NewUser_Password').value;
	password2 = document.getElementById('RV_NewUser_Password2').value;
	
	sTitle = document.getElementById('RV_NewUser_title').value;
	sFirstName = document.getElementById('RV_NewUser_firstname').value;
	sLastName = document.getElementById('RV_NewUser_surname').value;
	sCountry = document.getElementById('RV_NewUser_country').value;
	var e = '';
	if(!email||!/.+@[^.]+(\.[^.]+)+/.test(email) || isValidField(email,2) == false){e+='- Please enter a valid email address\n'}
	if(sTitle == '-'){e+='- Please choose your title\n';}
	if(sFirstName == ''){e+='- Please enter your first name\n';}
	if(sLastName == ''){e+='- Please enter your last name\n';}
	if(sCountry == '-'){e+='- Please enter your country of residence\n';}
	if(password.length < 6 || password.indexOf(' ') > -1){
		e+='- Please enter a password containing at least 6 characters (Spaces not allowed)\n';
	}else if(password!=password2){
		e+='- Confirmed password and password doesn\'t match\n';
	}
	if(e) {
		alert(e);
	}else{
		sURL = '/includes/reviews/reviews_newuser.asp?email='+encodeURI(email)+'&password='+encodeURI(password)+'&resortid='+Review_CurrentResortID + '&title=' + sTitle + '&firstname=' + sFirstName + '&lastname=' + sLastName + '&country=' + sCountry;
		var sResponse = readFile(sURL);
		if(window.DOMParser) {
			var parser=new DOMParser();
			var XMLDocTemp=parser.parseFromString(sResponse,"text/xml");
		}else{
			var XMLDocTemp=new ActiveXObject("Microsoft.XMLDOM");
			XMLDocTemp.async='false';
			XMLDocTemp.loadXML(sResponse);
		}
		sStatus = GetNode(XMLDocTemp.getElementsByTagName("status")[0].childNodes[0]);
		if(sStatus.toLowerCase()=='ok') {
			iUserID = parseFloat(GetNode(XMLDocTemp.getElementsByTagName("userid")[0].childNodes[0]));
			document.getElementById('review_userid').value=iUserID;
			Rating_Step2();
			document.getElementById('RV_NewUser_Password').value = '';
			document.getElementById('RV_NewUser_Password2').value = '';
			document.getElementById('RV_NewUser_Email').value = '';
		}else{
			var sErrors = '';
			oErrors = XMLDocTemp.getElementsByTagName("error");
			for(x=0;x<oErrors.length;x++){
				sErrors+=GetNode(oErrors[x].childNodes[0])+'\n';
			}
			alert(sErrors);
		}
	}
}


/* START WRITE A REVIEW */
	var Review_CurrentResortID;
	function WriteAReview(id, iX, iY) {
		Review_CurrentResortID = id;
		if(!iX){iX=0}
		if(!iY){iY=0}
		if(document.getElementById('divWriteAReview')) {
			PlaceHolder = document.getElementById('divWriteAReview');
			FramePlaceHolder = document.getElementById('frameWriteAReview');
			grayOut(true);
			FramePlaceHolder.style.display='block';
			PlaceHolder.style.display='block';
			
			/*FramePlaceHolder.style.left = parseFloat(MouseXPosition-475+iX)+'px';
			FramePlaceHolder.style.top = parseFloat(MouseYPosition-710+iY)+'px';
			
			PlaceHolder.style.left = parseFloat(MouseXPosition-475+iX)+'px';
			PlaceHolder.style.top = parseFloat(MouseYPosition-710+iY)+'px';*/
			
			var iFromTop = parseFloat(((document.documentElement.clientHeight-572)/2)+document.documentElement.scrollTop);
			if(iFromTop<10){iFromTop=10;}
			
			FramePlaceHolder.style.left = parseFloat((document.documentElement.clientWidth-475)/2)+'px';
			PlaceHolder.style.left = parseFloat((document.documentElement.clientWidth-475)/2)+'px';
			FramePlaceHolder.style.top = iFromTop+'px';
			PlaceHolder.style.top = iFromTop+'px';

			
			PlaceHolder.innerHTML = '<a name="WARTop"></a><div align="center" style="padding-top:50px; font-weight:bold; height:535px;"><img src="/images/animations/ajax-loader-white.gif"/><br/><br/>Please wait...</div>';
			sURL = "/includes/reviews/addreview.asp?id="+id+"&returnurl="+encodeURI(window.location.href.replace('?e=reviewadded','').replace(/&/g,'|'));
			if(sURL!='') {
				if(bDebug) {
					if(confirm('Open '+ sURL)) {
						window.open(sURL);
					}
				}
				setTimeout("loadWARDoc('"+sURL+"')", 500);
			}else{
				alert('No url defined');	
			}
		}
	}
	
	function CloseWAR() {
		if(document.getElementById('divWriteAReview')) {
			FramePlaceHolder = document.getElementById('frameWriteAReview');
			FramePlaceHolder.style.display='none';
			PlaceHolder = document.getElementById('divWriteAReview');
			PlaceHolder.style.display='none';
			grayOut(false);
		}
	}
	
	function loadWARDoc(url) {
		// branch for native XMLHttpRequest object
		sPostValues = RCValues
		if (window.XMLHttpRequest) {
			reqTAF = new XMLHttpRequest();
			reqTAF.onreadystatechange = processWAR;
			reqTAF.open("POST", url, true);
			reqTAF.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			reqTAF.setRequestHeader("Content-length", sPostValues.length);
			reqTAF.setRequestHeader("Connection", "close");
			reqTAF.send('resorts='+sPostValues);
		// branch for IE/Windows ActiveX version
		} else if (window.ActiveXObject) {
			reqTAF = new ActiveXObject("Microsoft.XMLHTTP");
			if (reqTAF) {
				reqTAF.onreadystatechange = processWAR;
				reqTAF.open("POST", url, true);
				reqTAF.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				reqTAF.setRequestHeader("Content-length", sPostValues.length);
				reqTAF.setRequestHeader("Connection", "close");
				reqTAF.send('resorts='+sPostValues);
			}
		}
	}
	function processWAR() {
		if (reqTAF.readyState == 4) {
			if (reqTAF.status == 200){
				PlaceHolder = document.getElementById('divWriteAReview');
				PlaceHolder.innerHTML = reqTAF.responseText;
			}
		}
	}
	

/* END WRITE A REVIEW*/
/* START RATING */
	function Rating_MouseOver(id, imgid, isclick) {
		o2 = parseFloat(document.getElementById('ratingvalue_'+id).value); //eval('Rating'+id+'_Min');
		o3 = document.getElementById('ratingtext_'+id);
		if(imgid>o2) {
			for(x=1;x<11;x++) {
				o1 = document.getElementById('ratingimg_'+id+'_'+x);
				if(o1) {
					if(imgid>=x) {
						o1.src = '/images/starrating/star_small.gif';
					}else{
						o1.src = '/images/starrating/star_small_none.gif';
					}
				}
			}
			o3.innerHTML=imgid;
		}

	}
	function Rating_MouseOut(id) {
		o2 = parseFloat(document.getElementById('ratingvalue_'+id).value);
		for(x=1;x<11;x++) {
			o1 = document.getElementById('ratingimg_'+id+'_'+x);
			if(o1 && x > o2) {
				o1.src = '/images/starrating/star_small_none.gif';
			}
		}
		o3 = document.getElementById('ratingtext_'+id);
		if(o3){
			o3.innerHTML=o2;
		}
	}
	function Rating_MouseClick(id, imgid) {
		o1 = document.getElementById('ratingvalue_'+id);
		if(o1) {
			o1.value=imgid;	
		}
		Rating_MouseOut(id);
	}
	function Rating_ShowHideItem(id) {
		o1 = document.getElementById('rating_'+id);
		o2 = document.getElementById('rating_nachecked'+id);
		if(o1&&o2) {
			if(o2.checked) {
				o1.style.display='none';
			}else{
				o1.style.display='';
			}
		}
	}
	function Rating_AddValidate(fId) {
		var sAction = document.getElementById('review_action').value;
		var e = '';
		if(!fId.review_subject.value){e+='- Please enter a review subject\n';}
		bEverythingRated = true;
		o1 = document.getElementsByTagName('input');
		var iCount = 0
		for(x=0;x<o1.length;x++) {
			if(o1[x].name.indexOf('rating_nachecked_')>-1) {
				iCount++;
				if(!o1[x].checked) {
					arInput = o1[x].name.split('_');
					iInputID = parseFloat(arInput[2]);
					o2 = document.getElementsByName('reviewvalue_'+iInputID);
					if(o2.length>0) {
						if(parseFloat(o2[0].value)==0) {
							if((sAction=='step2'&&iCount<=7)||sAction!='step2') {
								bEverythingRated = false;
							}
						}
					}
				}
			}
		}
		if(document.getElementById('ItemID') != null) {
			if(document.getElementById('ItemID').selectedIndex == 0){
				e+='- Please select the item you are reviewing from the list at the top. If is not in the list please select "Not listed"\n'
			}
		}
		if(!bEverythingRated){e+='- Please ensure all ratings are entered before submitting\n'}
		if(!fId.review_comments.value.replace(/ /g,'').replace(/\n/g,'')){e+='- Please enter overall comments\n';}
		if(!fId.review_month.value||!fId.review_year.value){
			e+='- Please enter the dates you stayed at the resort\n';
		}else{
			var dToday = new Date();
			if(fId.review_month.value > dToday.getMonth() + 1 && fId.review_year.value >= dToday.getFullYear()){
				e+='- Please ensure the date you have stayed at the resort is in the past\n';
			}
		}
		if(!fId.rating_terms.checked){e+='- Please confirm that you have read and understood our terms and conditions\n';}
		if(e){
			alert(e);
			return false;
		}else{
			if(sAction=='step2') {
				oLogin = document.getElementById('review_login');
				if(oLogin){
					div_switch('review_step1',false,true);
					div_switch('review_login',true,true);
					return false;
				}else{
					Rating_Step2();
					return false;	
				}
			}
		}
	}
	function Rating_Step2() {
		FramePlaceHolder = document.getElementById('frameWriteAReview');
		PlaceHolder = document.getElementById('divWriteAReview');
		sNewTop = parseFloat(PlaceHolder.style.top.replace('px',''))+130+'px';
		sNewHeight = parseFloat(PlaceHolder.offsetHeight-85)+'px';
		PlaceHolder.style.height=sNewHeight;
		FramePlaceHolder.style.height=sNewHeight;
		PlaceHolder.style.top=sNewTop;
		FramePlaceHolder.style.top=sNewTop;
		document.getElementById('review_action').value = 'add';
		div_switch('review_step1',false,true);
		div_switch('review_login',false,true);
		div_switch('review_step2',true,true);	
	}
	function WARSubmitStep1Only() {
		document.getElementById('review_action').value = 'add_step1only';
		document.frmAddReview.submit();
	}
/* END RATING */

function getOneReview(sExtra, iPosition, sProvider, sAccommCode, sAccommName, sLongLat, sDestination) {
	
	var sDivID = 'ReviewBalloon' + sExtra + iPosition;
	
	var sURL = '/includes/reviews/reviewballoon.asp?Extra=' + sExtra + '&ID=' + iPosition + '&Provider=' + sProvider + '&ProviderID=' + sAccommCode + '&AccommName=' + sAccommName + '&LongLat=' + sLongLat + '&Destination=' + sDestination;
	var oReviewBox = new ajaxObject2(sDivID, sURL);
	oReviewBox.update(sDivID)		

}

function showReviewsResults(iPosition, sProvider, sProviderCode, sExtra){
	if(document.getElementById('divHotelInfo'+sExtra+iPosition)) {
		document.getElementById('divHotelInfo'+sExtra+iPosition).style.display = '';
		SwitchHotelInfo('search_tab2_'+sExtra.replace('_','')+ iPosition,'',sProvider + ',' + sProviderCode,'divMore'+sExtra + iPosition + '_Reviews', 1, sExtra)
	}
}
var SelectedSearchTab = 'search_tab1_1';
var SelectedSearchTab_Resort = 'search_tab1_1';
function SwitchTabs_HotelInfo(id, on, sClass, sExtra) {
	if(SelectedSearchTab_Resort!=id && SelectedSearchTab!=id) {
		var iPos1 = id.split('_')[2];
		var iPosInt = id.split('_')[2];
		iPos1 = '_' + iPos1;
		
		//alert('id:'+id+'\non:'+on+'\nsClass:'+sClass+'\nsExtra:'+sExtra+'\ndivMore:'+'divMore' + iPos1 + '_Reviews');
		if(on==1){
			if(document.getElementById(id).className.indexOf('Over')<0){
				document.getElementById(id).className = document.getElementById(id).className + 'Over'
			}else{
				SelectedSearchTab_Resort = id;
				SelectedSearchTab = id;
			}
		}else{
			//alert('divMore' + iPos1 + '_Reviews')
			if((id == 'search_tab1_' + iPosInt) || (document.getElementById('divMore' + iPos1 + '_Reviews').style.display == 'none' && id == 'search_tab2_' + iPosInt)){
				document.getElementById(id).className = document.getElementById(id).className.replace('Over', '');
			}
		}
	}
}
function SwitchHotelInfo(theID, iReviewID, sReviewItem, sDivID, iPage, sExtra){
	//alert('theID:'+theID+'\niReviewID:'+iReviewID+'\nsReviewItem:'+sReviewItem+'\nsDivID:'+sDivID+'\niPage:'+iPage+'\nsExtra:'+sExtra);
	var iPosInt = theID.split('_')[2];
	if(sExtra != undefined) {
		if(sExtra.length > 0) {
			theID = theID.replace(sExtra, '_');
		}else{
			sExtra = '_';
		}
		var iPos = sExtra + theID.split('_')[2];
	}else{
		var iPos = '_' + theID.split('_')[2];
	}
	if(theID.indexOf('tab1') > -1){
		if(document.getElementById('search_tab2_'+iPosInt)) {
			document.getElementById('search_tab1_'+iPosInt).className = 'tabOver';
			document.getElementById('search_tab2_'+iPosInt).className = 'tab';
			document.getElementById('divMore' + iPos + '_Hotel').style.display = '';
			document.getElementById('divMore' + iPos + '_Reviews').style.display = 'none';
			SelectedSearchTab = 'search_tab1_'+iPosInt;
			SelectedSearchTab_Resort = 'search_tab1_'+iPosInt;
		}
	} else {
		var sProvider = sReviewItem.split(',')[0];
		var sProviderID = sReviewItem.split(',')[1];
		var sAccommName = sReviewItem.split(',')[2];
		// Show reviews Tab
		document.getElementById('divMore' + iPos + '_Reviews').innerHTML = '<div align="center"><img src="/images/animations/ajax-loader-white.gif" style="margin-top:15px;" /><br /><br /><span class="resultPleaseWait">Loading... Please wait.</span></div>';

		if(document.getElementById('search_tab2_'+iPosInt)) {
			document.getElementById('search_tab1_'+iPosInt).className = 'tab';
			document.getElementById('search_tab2_'+iPosInt).className = 'tabOver';
			document.getElementById('divMore' + iPos + '_Hotel').style.display = 'none';
			document.getElementById('divMore' + iPos + '_Reviews').style.display = '';
			SelectedSearchTab = 'search_tab2_'+iPosInt;
			SelectedSearchTab_Resort = 'search_tab2_'+iPosInt;
		}
		ShowReviews(iReviewID, sProvider, sProviderID, 'divMore' + iPos + '_Reviews', theID, iPage, sAccommName, sExtra);
	}
}

function SwitchHotelInfo_Resort(theID, sParam1, sParam2, iItemID, iPage, sCountryName, sResortName) {
	var sDivID = '';
	if(theID.indexOf('tab1') > -1){
		document.getElementById('search_tab1_1').className = 'tabOver';
		document.getElementById('search_tab2_1').className = 'tab';
		document.getElementById('divMore_1_Hotel').style.display = '';
		document.getElementById('divMore_1_Reviews').style.display = 'none';
		SelectedSearchTab = 'search_tab1_1';
		SelectedSearchTab_Resort = 'search_tab1_1';
		sDivID = 'divMore_1_Hotel';
		document.getElementById(sDivID).innerHTML = '<div align="center"><img src="/images/animations/ajax-loader-white.gif" style="margin-top:15px;" /><br /><br /><span class="resultPleaseWait">Loading... Please wait.</span></div>';
		ShowDestinationReviews(sParam1, sParam2, sDivID, theID, '', 1, iPage, sCountryName, sResortName)
	} else {
		
		sDivID = 'divMore_1_Hotel';
		
		document.getElementById(sDivID).innerHTML = '<div align="center"><img src="/images/animations/ajax-loader-white.gif" style="margin-top:15px;" /><br /><br /><span class="resultPleaseWait">Loading... Please wait.</span></div>';
		document.getElementById('search_tab1_1').className = 'tab';
		document.getElementById('search_tab2_1').className = 'tabOver';
		//document.getElementById('divMore1_Hotel').style.display = 'none';
		//document.getElementById('divMore1_Reviews').style.display = '';
		SelectedSearchTab = 'search_tab2_1';
		SelectedSearchTab_Resort = 'search_tab2_1';
		ShowDestinationReviews(sParam1, sParam2, sDivID, theID, iItemID, 11, iPage, sCountryName, sResortName)
	}
}

/* BEGIN MORE INFO */
function GetMoreHotelInfo_Tab(sPosition, sProvider, sAccommCode, sGABProvID, sMulticomFAB, sSessionID, sUnknown, sExtra) {
	sCurrentPosition = sPosition;
	sPosition = sPosition.replace('_spec', '');
	if(sExtra != undefined) {
		if(sExtra.length == 0) {
			sExtra = '_';
		}
		var iPos = sExtra + sPosition;
	}else{
		var iPos = '_' + theID.split('_')[2];
	}
	if(document.getElementById('search_tab1'+iPos)) {
		document.getElementById('search_tab2'+iPos).className = 'tab';
		document.getElementById('search_tab1'+iPos).className = 'tabOver';
		SelectedSearchTab = 'search_tab1'+iPos;
		SelectedSearchTab_Resort = 'search_tab1'+iPos;
	}
	document.getElementById('divMore'+iPos+'_Hotel').style.display = '';
	document.getElementById('divMore'+iPos+'_Reviews').style.display = 'none';
	sURL = '/includes/hotelinfo.asp?provider='+sProvider+'&accommcode='+sAccommCode+'&gabprovid='+sGABProvID+'&multicomfab='+sMulticomFAB+'&session='+sSessionID;
	document.getElementById('Description'+sCurrentPosition).innerHTML = '<div align="center"><img src="/images/animations/ajax-loader-white.gif" /><br /><br /><span class="resultPleaseWait">Loading... Please wait.</span></div>'
	if(bDebug) {
		if(confirm('Open '+ sURL)) {
			window.open(sURL);
		}
	}
	setTimeout("loadInfoXMLDoc('"+sURL+"')", 100);
}
/* END MORE INFO */

function ShowReviews(iReviewID, sProvider, sProviderID, sDivID, sDivID2, iPage, sAccommName, sExtra){
	var sURL = '/includes/reviews/reviews.asp?Extra=' + sExtra + '&DivID=' + sDivID2 + '&ReviewID=' + iReviewID + '&Provider=' + sProvider + '&ProviderID=' + sProviderID + '&Page=' + iPage + '&AccommName=' + sAccommName;
	var oReviewBox = new ajaxObject2(sDivID, sURL);
	oReviewBox.update(sDivID)		
}

function ShowDestinationReviews(sParam1, sParam2, sDivID, sDivID2, iItemID, iType, iPage, sCountryName, sResortName){
	if(sParam1.length == 0 && sCountryName.length > 0) {
		sParam1 = sCountryName;
		sParam2 = sResortName;
	}
	var sURL = '/includes/reviews/reviews.asp?DivID=' + sDivID2 + '&RV_CountryName=' + sParam1 + '&RV_ResortName=' + sParam2 + '&Page=' + iPage + '&ItemID=' + iItemID + '&Type=' + iType;
	var oReviewBox = new ajaxObject2(sDivID, sURL);
	oReviewBox.update(sDivID)		
}
function getSearch(sDivID, iID) {
	if(sDivID == 'Region') {
		document.getElementById('Resort').innerHTML = '<div class="searchboxtitle">Resort:</div><select disabled="disabled" class="dropdown"><option value="0">- Please select region -</option></select>';
	}
	var sURL = '/includes/reviews/searchboxes_AJAX.asp?ID=' + iID + '&Type='+ sDivID;
	var oReviewBox = new ajaxObject2(sDivID, sURL);
	oReviewBox.update(sDivID)		
}
function submitForm(){
	if(!document.getElementById('ddlResort')){
		alert('Please select a resort before searching');
	}else if(document.getElementById('ddlResort').value == 0){
		alert('Please select a resort before searching');
	}else if(!document.getElementById('ddlRegion')){
		alert('Please select a resort before searching');
	}else if(document.getElementById('ddlRegion').value == 0){
		alert('Please select a resort before searching');
	}else{
		window.location.href='/reviews/resort.asp?id=' + document.getElementById('ddlResort').value;
	}
}
function ajaxObject2(layer, url) {
	var sAdditionalParams = '';
	if(url.indexOf('?') > -1){
		sAdditionalParams = '&' + url.split('?')[1];
		url = url.split('?')[0];
	}
	var that=this;                                                    // A workaround for some javascript idiosyncrocies   
	var updating = false;                                             // Set to true if this object is already working on a request   
	this.callback = function() {}                                     // A post-processing call -- a stub you overwrite.   
	this.update = function(passData) {                                // Initiates the server call.      
		if (updating==true) { return false; }                          // Abort if we're already processing a call.      
		updating=true;                                                 // Set the updating flag.      
		var AJAX = null;                                               // Initialize the AJAX variable.      
		if (window.XMLHttpRequest) {                                   // Are we working with mozilla?         
			AJAX=new XMLHttpRequest();                                  //  Yes -- this is mozilla.      
		} else {                                                       // Not Mozilla, must be IE         
			AJAX=new ActiveXObject("Microsoft.XMLHTTP");                //  Wheee, ActiveX, how do we format c: again?      
		}                                                              // End setup Ajax.      
		if (AJAX==null) {                                              // If we couldn't initialize Ajax...         
			alert("Your browser doesn't support AJAX.");                // Sorry msg.                                                       
			return false                                                // Return false (WARNING - SAME AS ALREADY PROCESSING!)      
		} else {        
			AJAX.onreadystatechange = function() {                      // When the browser has the request info..       
			if(LayerID){
				if (AJAX.readyState==4 || AJAX.readyState=="complete") { //   see if the complete flag is set.   
					var sText = AJAX.responseText
					if(sText.indexOf("|") > -1){
						sText = sText.split("|")[1]
					}
					document.getElementById(LayerID.id).innerHTML=sText;                 	 //   It is, so put the new data in the object's layer               

					delete AJAX;                                          //   delete the AJAX object since it's done.               
					updating=false;                                       //   Set the updating flag to false so we can do a new request               
					that.callback();                                      //   Call the post-processing function.            
				}                                                       // End Ajax readystate check.   
			}
		}                                                           // End create post-process fucntion block.         
		var timestamp = new Date();                                 // Get a new date (this will make the url unique)        
		var uri=urlCall+'?'+passData+'&timestamp='+(timestamp*1) + sAdditionalParams;   // Append date to url (so the browser doesn't cache the call)         
		
		AJAX.open("GET", uri, true);                                // Open the url this object was set-up with.         
		AJAX.send(null);                                            // Send the request.         
		return true;                                                // Everything went a-ok.     
		}                                                              // End Ajax setup aok if/else block                    
	}         // This area set up on constructor calls.   
	var LayerID = document.getElementById(layer);                     // Remember the layer associated with this object.   
	var urlCall = url;  
	// Remember the url associated with this object.
}  
function bsLoadReviewGoogleMap(sDiv, iLat, iLng, bOverrideSize, iCustomZoomLevel, bHidePoint, bHideGMapTypeControl) {
	if(document.getElementById(sDiv)) {
		var iZoomLevel = 13;
		if(iCustomZoomLevel){
			iZoomLevel = iCustomZoomLevel;
		}
		if(document.getElementById(sDiv)) {
			sDiv = document.getElementById(sDiv)
			if(!bOverrideSize) {
				sDiv.style.width = '500px';
				sDiv.style.height = '220px';
			}
			if (GBrowserIsCompatible()) {
				var mygmap = new GMap2(sDiv);
				//map.addControl(new YSliderControl());

				mygmap.addControl(new GSmallMapControl(), new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(0,35)));
				if(!bHideGMapTypeControl) {
					mygmap.addControl(new GMapTypeControl());
				}
				mygmap.setCenter(new GLatLng(iLat, iLng), iZoomLevel);
				if(!bHidePoint) {
					var point = new GLatLng(iLat,iLng);
					mygmap.addOverlay(new GMarker(point));
				}
				
				
				var interestIcon = new GIcon();
				interestIcon.image = "/images/icons/googlemap_interest.png"
				interestIcon.iconSize = new GSize(22, 22);
				interestIcon.iconAnchor = new GPoint(9, 34);
				interestIcon.infoWindowAnchor = new GPoint(11, 1);
				
				function createMarker(point, title) {
					var marker = new GMarker(point, interestIcon);
					marker.image = "/images/icons/googlemap_interest.png";
					
					GEvent.addListener(marker, "click", function() {
						sHTML = title;
						marker.openInfoWindowHtml(sHTML);
					});
					return marker;
				}
				hiddenFields = document.getElementsByName('POIGoogleLat');
				for(x=0;x<hiddenFields.length;x++) {
					/*alert(document.getElementsByName('POIGoogleLat')[x].value);*/
					var newpoint = new GLatLng(document.getElementsByName('POIGoogleLat')[x].value,document.getElementsByName('POIGoogleLng')[x].value);
					mygmap.addOverlay(createMarker(newpoint, document.getElementsByName('POIGoogleTitle')[x].value));
				}
				
			}
		}
	}
}
