function showOverPage(url,values,elementId)
{
	var faderDiv=document.getElementById(elementId);
	var contentDiv=document.getElementById(elementId+'_content');
	if(contentDiv==null)
	{
		contentDiv=document.createElement('div');
		contentDiv.setAttribute('id', elementId+'_content');
	}
	else
	{
		contentDiv.style.display='block';
	}
	contentDiv.className="faderContainer";
	contentDiv.innerHTML="<img alt='Loading...' src='../resources/loading.gif'>";
	contentDiv.style.position = "absolute";
	contentDiv.style.left = ((document.documentElement.clientWidth-contentDiv.style.width)/2)+"px";
	contentDiv.style.top = ((document.documentElement.clientHeight-contentDiv.style.height)/2)+"px";
	document.body.appendChild(contentDiv);
	
	faderDiv.style.height= (document.documentElement.clientHeight+document.documentElement.scrollTop)+"px";
	faderDiv.style.width=  document.documentElement.clientWidth+"px";
	faderDiv.style.display='block';
	sendHttpRequest("POST",url,values,postOverPageRequest,elementId+'_content')
	FadeOpacity(elementId,0,50,200,20);
	window.scrollTo(0,0);
}

function postOverPageRequest(xmlHttp, divID)
{
	var contentDiv=document.getElementById(divID);
	contentDiv.innerHTML=xmlHttp.responseText;
	contentDiv.style.left = ((document.documentElement.clientWidth-contentDiv.offsetWidth)/2)+"px";
	contentDiv.style.top = ((document.documentElement.clientHeight-contentDiv.offsetHeight)/2)+"px";
}
function closeOverPage(elementId)
{
	var faderDiv=document.getElementById(elementId);
	faderDiv.style.display='none';
	faderDiv=document.getElementById(elementId+'_content');
	faderDiv.style.display='none';
}
function SetOpacity(elem, opInt)
{
	var opDec = opInt;
	
	if (opInt > 100)
		opInt = opDec = 100; 
	else if (opInt < 0)
		opInt = opDec = 0; 
	
	opDec /= 100;
	if (opInt < 1)
		opInt = 1; // IE7 bug, text smoothing cuts out if 0
	
	elem.style.opacity = opDec;
	elem.style.filter  = "alpha(opacity=" + opInt + ")";
}
function FadeOpacity(elemId, fromOpacity, toOpacity, time, fps)
{
	var steps = Math.ceil(fps * (time / 1000));
	var delta = (toOpacity - fromOpacity) / steps;
	
	FadeOpacityStep(elemId, 0, steps, fromOpacity, delta, (time / steps));
}
function FadeOpacityStep(elemId, stepNum, steps, fromOpacity, delta, timePerStep)
{
    SetOpacity(document.getElementById(elemId), Math.round(parseInt(fromOpacity) + (delta * stepNum)));
    if (stepNum < steps)
        setTimeout("FadeOpacityStep('" + elemId + "', " + (stepNum+1) + ", " + steps + ", " + fromOpacity + ", " + delta + ", " + timePerStep + ");", timePerStep);
}
///AJAX:
var debug = true;
function sendHttpRequest(method, url, params, callback, callbackParam) {
    var request;
    if (window.XMLHttpRequest)
        request = new XMLHttpRequest();
    else if (window.ActiveXObject)
        request = new ActiveXObject("Microsoft.XMLHTTP");
    else
        return null;
        
    if (method)
        method = method.toUpperCase();
    else
        method = "GET";
    var fullURL = url;
    if (params && method == "GET")
    {
        fullURL += "?" + buildQueryString(params);
        //fullURL=encodeURI(fullURL);
        //fullURL=encodeURI(fullURL);
    }
    var async = false;
    if (callback)
        async = true;
    request.open(method, fullURL, async);
    
    function calbackWrapper() {
        if (async && request.readyState == 4) {
            if (request.status == 200)
            {
            	if(callbackParam,callbackParam)
            	{
            		callback(request,callbackParam);
            	}else
            	{
            		callback(request);
            	}
            }
            else
            {
            	// alert("AJAX ERROR");
                //reportError(request, url, params);
            }
        }
    }
    if (async)
        request.onreadystatechange = calbackWrapper;
    var body = null;
    if (method == "POST") {
        request.setRequestHeader("Content-Type",
            "application/x-www-form-urlencoded;charset=UTF-8");
        if (params)
            body = buildQueryString(params);
    }
    request.send(body);
    if (!async && (request.readyState != 4
            || request.status != 200)) {
            alert("AJAX ERROR");
        reportError(request, url, params);
        return null;
    }
    return request;
}
function buildQueryString(params) {
    var query = "";
    for (var i = 0; i < params.length; i++) {
        query += (i > 0 ? "&" : "")
            + encodeURI(params[i].name)+ "="
            + encodeURIComponent(params[i].value);
           // + escape(params[i].value);
           //alert(params[i].value +" -> "+escape(params[i].value));
    }
    return query;
}
function reportError(request, url, params) {
    if (debug) {
        if (request.status != 200) {
            if (request.statusText)
                alert(request.statusText);
            else
                alert("HTTP Status: " + request.status);
        } else
            alert("Response Error");
        if (params)
            url += "?" + buildQueryString(params);
        document.location = url;
    }
}
function abortRequest(request) {
    function doNothing() {
    }
    request.onreadystatechange = doNothing;
    request.abort();
    delete feedRequest;
}
function escapeXML(content) {
    if (content == undefined)
        return "";
    if (!content.length || !content.charAt)
        content = new String(content);
    var result = "";
    var length = content.length;
    for (var i = 0; i < length; i++) {
        var ch = content.charAt(i);
        switch (ch) {
            case '&':
                result += "&amp;";
                break;
            case '<':
                result += "&lt;";
                break;
            case '>':
                result += "&gt;";
                break;
            case '"':
                result += "&quot;";
                break;
            case '\'':
                result += "&apos;";
                break;
            default:
                result += ch;
        }
    }
    return result;
}
function parse(xml) {
    var dom;
if (window.ActiveXObject)
  {
 	 try {
        dom = new ActiveXObject("Microsoft.XMLDOM");
        dom.async = false;
        dom.loadXML(xml);
         } catch (error1) {
            if (debug)
                alert("XML parsing is not supported.");
        }
    } else
     {
        try {
            var parser = new DOMParser();
            dom = parser.parseFromString(xml, "text/xml");
            delete parser;
        } catch (error2) {
            if (debug)
                alert("XML parsing is not supported.");
        }
    }
    return dom;
}
function serialize(dom) {
    var xml = dom.xml;
    if (xml == undefined) {
        try {
            var serializer = new XMLSerializer();
            xml = serializer.serializeToString(dom);
            delete serializer;
        } catch (error) {
            if (debug)
                alert("DOM serialization is not supported.");
        }
    }
    return xml;
}
//AJAX END
// add
function getSubCategories(idCategory)
{
	var values=new Array();
	values[0]={name: "idCategory", value: idCategory};
	var subDiv=document.getElementById("subCategoryLoading");
	subDiv.innerHTML='<img alt="Loading.." src="../resources/loading.gif"/>';
	subDiv.style.display="block";
	document.getElementById("subCategoryDiv").style.display="none";
	sendHttpRequest("POST","../GetSubCategories",values,postGetSubCategories);
}
function postGetSubCategories(xmlHttp)
{
	var parser=parse(xmlHttp.responseText);
	var answer=parser.getElementsByTagName("answer")[0];
	var subCatSel=document.getElementById("subCategory");
	subCatSel.options.length=0;
	if(answer.getElementsByTagName("error").length>0)
	{
		var elOptNew = document.createElement('option');
	    elOptNew.text = answer.getElementsByTagName("error")[0].childNodes[0].nodeValue;
	    elOptNew.value = '-1';
	    subCatSel.options[subCatSel.options.length]=elOptNew;
	}
	else
	{
		var items=answer.getElementsByTagName("cat");
		for ( var i = 0; i < items.length; i++) {
			var elOptNew = document.createElement('option');
		    elOptNew.text = answer.getElementsByTagName("name")[i].childNodes[0].nodeValue;
		    elOptNew.value = answer.getElementsByTagName("id")[i].childNodes[0].nodeValue;
		    subCatSel.options[subCatSel.options.length]=elOptNew;
		}
	}
	var subDiv=document.getElementById("subCategoryLoading");
	subDiv.style.display="none";
	document.getElementById("subCategoryDiv").style.display="block";
}
//-end add
function mouseX(evt) {
	if (evt.pageX) return evt.pageX;
	else if (evt.clientX)
	   return evt.clientX + (document.documentElement.scrollLeft ?
	   document.documentElement.scrollLeft :
	   document.body.scrollLeft);
	else return null;
	}
function mouseY(evt) {
	if (evt.pageY) return evt.pageY;
	else if (evt.clientY)
	   return evt.clientY + (document.documentElement.scrollTop ?
	   document.documentElement.scrollTop :
	   document.body.scrollTop);
	else return null;
}

//viewPlace
function loadMap(thisObj, lat, lgn, zoomLevel,idContainer)
{
	var idCont="addPlaceMapDiv";
	if(idContainer){
		idCont=idContainer;
	}
	var mapContainer=document.getElementById(idCont);
	mapContainer.style.display="block";
	var map = new google.maps.Map2(mapContainer);
	//map.setCenter(new GLatLng(37.4419, -122.1419), 13);
	map.setMapType(G_HYBRID_MAP);
	map.setUIToDefault();
	map.addControl(new google.maps.OverviewMapControl());
	map.setCenter(new google.maps.LatLng(lat, lgn), zoomLevel);
	if(thisObj)
	{
		thisObj.style.display="none";
	}
	
	var blueIcon = new GIcon(G_DEFAULT_ICON);
		blueIcon.image = "../resources/pin.gif";
	var markerOptions = { icon:blueIcon};
	var marker=new GMarker(map.getCenter(),markerOptions);
		map.addOverlay(marker);
}
function getLargePhoto(uri,idPhoto,index)
{
	var bigContainer=document.getElementById("bigPhotoContainer");
	document.getElementById("currentIdPhoto").value=idPhoto;
	var img = document.getElementById("image")//document.createElement("img");
	var scrolldiv=document.getElementById("scrollcontent");
	//scrolldiv.style.left=(index * (-138))+"px";
	
	img.onload = function () {
			bigContainer.innerHTML="";
			bigContainer.appendChild(img);
		}
	bigContainer.innerHTML='<img alt="Loading.." src="../resources/loading.gif"/>';
	img.src = ".."+uri;
	getPhotoComments(idPhoto);
	if((index+4)<imgNo)
	{
		var left=index*photoStep;
		aThumb.style.left=left +"px";
		scrolldiv.style.left=left * (-1*scrollerStep) +"px";
	}
}

function postGetLargePhoto(xmlHttp)
{
	var parser=parse(xmlHttp.responseText);
	var answer=parser.getElementsByTagName("answer")[0];
	if(answer.getElementsByTagName("error").length>0)
	{
		//
	}
	else
	{
		var photo=answer.getElementsByTagName("photo")[0];
		document.getElementById("photoName").innerHTML=photo.getElementsByTagName("name")[0].childNodes[0].nodeValue;
		document.getElementById("photoDescription").innerHTML=photo.getElementsByTagName("description")[0].childNodes[0].nodeValue;
		var comments=answer.getElementsByTagName("comment");
		var cList=document.getElementById("photoCommentsList");
		showComments(comments,cList);
	}
}

function showComments(comments,cList)
{
	while(cList.childNodes.length>0)
	{
		cList.removeChild(cList.lastChild);
	}
	for(i=0;i < comments.length;i++)
	{
		var newComm=document.createElement("li");
		newComm.innerHTML=comments[i].getElementsByTagName("comment_text")[0].childNodes[0].nodeValue;
		cList.appendChild(newComm);
	}
}

function toogleDisplay(idElement)
{
	var elem=document.getElementById(idElement);
	if(elem.style.display='none')
	{
		elem.style.display="block";
	}
	else
	{
		elem.style.display="none";
	}
}

function getDetailsInLanguage(idPlace,idLanguage)
{
	var textContent=document.getElementById("descriptionText");
	textContent.innerHTML='<img alt="Loading.." src="../resources/loading.gif"/>';
	var values=new Array();
	values[0]={name: "idPlace",value: idPlace};
	values[1]={name: "idLanguage",value: idLanguage};
	sendHttpRequest("POST","../GetDetailsTranslation",values,postGetDetailsInLanguage);
}

function postGetDetailsInLanguage(xmlHttp)
{
	var textContent=document.getElementById("descriptionText");
	textContent.innerHTML=xmlHttp.responseText;
}

function saveSuggestion()
{
	// TODO add users current url
	var values=new Array();
	values[0]={name: "subject",value:document.getElementById("suggestionSubject").value};
	values[1]={name: "detail",value:document.getElementById("suggestionDetails").value};
	var contentDiv=document.getElementById("fadezone_content");
	contentDiv.innerHTML='<img alt="Loading.." src="../resources/loading.gif"/>';
	sendHttpRequest("POST","../Suggestion",values,postSaveSuggestion);
}

function postSaveSuggestion(xmlHttp)
{
	var contentDiv=document.getElementById("fadezone_content");
	contentDiv.innerHTML=xmlHttp.responseText;
}

function sendEmailToRecipients(idPlace)
{
	var values=new Array();
	values[0]={name: "emailRecipients",value: document.getElementById("sentToAddresses").value};
	values[1]={name: "idPlace", value: idPlace};
	values[2]={name: "emailName", value: 'send_to_recipients'};
	sendHttpRequest("POST","../SendEMail",values);
	closeOverPage('fadezone');
}

function sendToEMail(idPlace)
{
	var values=new Array();
	values[0]={name: "idPlace", value: idPlace};
	values[1]={name: "emailName", value: 'send_to_mail'};
	sendHttpRequest("POST","../SendEMail",values);
}

function savePhotoComment()
{
	
	var values=new Array();
	values[0]={name: "idPhoto", value: document.getElementById("currentIdPhoto").value};
	values[1]={name: "commentTitle", value: document.getElementById("commentTitle").value};
	values[2]={name: "commentText", value: document.getElementById("commentText").value};
	var commentDiv=document.getElementById("commentDiv");
	commentDiv.innerHTML='<img alt="Saving.." src="../resources/loading.gif"/>';
	sendHttpRequest("POST", "../AddPhotoComment", values, postSavePhotoComment);
}

function postSavePhotoComment() {
	closeOverPage("fadezone");
	getPhotoComments(document.getElementById("currentIdPhoto").value);
}

function getPhotoComments(idPhoto)
{
	var values=new Array();
	values[0]={name: "idPhoto", value: idPhoto};
	sendHttpRequest("POST", "../GetPhotoInfo", values, postGetLargePhoto);	
}

function savePlaceComment()
{
	var values=new Array();
	values[0]={name: "idPlace", value: document.getElementById("idPlace").value};
	values[1]={name: "commentTitle", value: document.getElementById("commentTitle").value};
	values[2]={name: "commentText", value: document.getElementById("commentText").value};
	var commentDiv=document.getElementById("commentDiv");
	commentDiv.innerHTML='<img alt="Saving.." src="../resources/loading.gif"/>';
	sendHttpRequest("POST", "../AddPlaceComment", values, postSavePlaceComment);
}

function postSavePlaceComment() {
	closeOverPage("fadezone");
	getPlaceComments(document.getElementById("idPlace").value,0);	
}
// end view place

//register
var toCheckFields=["register_user_name","register_pass","register_re_pass","register_email","register_re_email"];
var registerFields=["register_first_name","register_last_name","register_user_name","register_pass","register_re_pass","register_email","register_re_email","register_id_language","register_id_country"];
var toCheck=new Array();
for(i=0;i<toCheckFields.length;i++)
{
	toCheck[toCheckFields[i]]="empty";
}
function checkField(fieldName, fieldValue,fieldValue2)
{
	var values=new Array();
	values[0]={name: "fieldName",value:fieldName};
	values[1]={name: "fieldValue",value:fieldValue};
	if(fieldValue2)
	{
		values[2]={name: "fieldValue2",value:fieldValue2};
	}
	sendHttpRequest("POST",'../CheckField',values,postCheckField);
}
function postCheckField(xmlHttp)
{
	var parser=parse(xmlHttp.responseText);
	var answer=parser.getElementsByTagName("answer")[0];
	var field=answer.getElementsByTagName("fieldName")[0].childNodes[0].nodeValue;
	var validTD=document.getElementById("td_"+field);
	var errorDiv=document.getElementById("error_"+field);
	
	if(answer.getElementsByTagName("ok").length>0)
	{
		errorDiv.innerHTML=answer.getElementsByTagName("ok")[0].childNodes[0].nodeValue;
		errorDiv.setAttribute("class", "write-ok");
		errorDiv.setAttribute("className", "write-ok");
		validTD.setAttribute("class", "validated");
		validTD.setAttribute("className", "validated");
		toCheck[field]="1";
	}
	else
	{
		if(answer.getElementsByTagName("error").length>0)
		{
			errorDiv.innerHTML=answer.getElementsByTagName("error")[0].childNodes[0].nodeValue;
			errorDiv.setAttribute("class", "write-error");
			errorDiv.setAttribute("className", "write-error");
			validTD.setAttribute("class", "not-validated");
			validTD.setAttribute("className", "not-validated");
			toCheck[field]=errorDiv.innerHTML;
			
		}
		else
		{
			errorDiv.setAttribute("class", "hiden");
			errorDiv.setAttribute("className", "hiden");
			toCheck[field]="0";
			
		}
	}
}
lastFieldInfo="";
function getFieldInfo(fieldName)
{
	if(lastFieldInfo!=fieldName)
	{
	//	alert(lastFieldInfo+" -> "+fieldName)
		lastFieldInfo=fieldName;
		var values=new Array();
		values[0]={name: "fieldName",value:fieldName};
		sendHttpRequest("POST",'../FieldInfo',values,postGetFieldInfo);
	}
}
function postGetFieldInfo(xmlHttp)
{
	var infoDiv=document.getElementById("infoFieldRegisterContent");
	infoDiv.innerHTML=xmlHttp.responseText;
}

function checkRegister()
{
	for ( i = 0; i < toCheckFields.length; i++) {
		if(toCheck[toCheckFields[i]]!="1")
		{
			alert(toCheck[toCheckFields[i]]);
			return false;
		}
	}
	return true;
}

function register()
{
	if(checkRegister())
	{
		var values=new Array();
		for (i = 0; i < registerFields.length; i++) {
			values[i]={name: registerFields[i],value: document.getElementById(registerFields[i]).value};
			document.getElementById("registerTable").style.display="none";
		}
		sendHttpRequest("POST","../Register",values,postRegister);
	}
	return false;
}

function postRegister(xmlHttp)
{
	var parser=parse(xmlHttp.responseText);
	var answer=parser.getElementsByTagName("answer")[0];
	if(answer.getElementsByTagName("error").length>0)
	{
		document.getElementById("registerTable").style.display="block";
	}
	else
	{
		document.location="../index/index.jsp";
	}
}
//end register

function toogleDisplay(idDisplay,idHides)
{
	document.getElementById(idDisplay).style.display="block";
	for (i = 0; i < idHides.length; i++) {
		document.getElementById(idHides[i]).style.display="none";
	}
}

function submitLocation(){
	var values=new Array();
	values[0]={name: "op", value: 'location'};
	values[1]={name: "register_id_country", value: document.getElementById("register_id_country").value};
	values[2]={name: "register_id_language", value: document.getElementById("register_id_language").value};
	document.getElementById("locationLoadingMessage").style.display="block";
	sendHttpRequest("POST","../Profile",values,postSubmitLocation);
}

function postSubmitLocation(xmlHttp)
{
	document.getElementById("locationLoadingMessage").style.display="none";
	var loadMsgDiv=document.getElementById("infoFieldRegisterContent");
	
	var parser=parse(xmlHttp.responseText);
	var answer=parser.getElementsByTagName("answer")[0];
	if(answer.getElementsByTagName("error").length>0)
	{
		//
	}
	else
	{
		loadMsgDiv.innerHTML=answer.getElementsByTagName("msg")[0].childNodes[0].nodeValue;
	}
}

function submitUserData(){
	var values=new Array();
	values[0]={name: "op", value: 'userData'};
	values[1]={name: "register_first_name", value: document.getElementById("register_first_name").value};
	values[2]={name: "register_last_name", value: document.getElementById("register_last_name").value};
	values[3]={name: "register_pass", value: document.getElementById("register_pass").value};
	values[4]={name: "register_re_pass", value: document.getElementById("register_re_pass").value};
	
	document.getElementById("userDataLoadingMessage").style.display="block";
	sendHttpRequest("POST","../Profile",values,postSubmitUserData);
}

function postSubmitUserData(xmlHttp)
{
	document.getElementById("userDataLoadingMessage").style.display="none";
	var loadMsgDiv=document.getElementById("infoFieldUserData");
	
	var parser=parse(xmlHttp.responseText);
	var answer=parser.getElementsByTagName("answer")[0];
	if(answer.getElementsByTagName("error").length>0)
	{
		//
	}
	else
	{
		loadMsgDiv.innerHTML=answer.getElementsByTagName("msg")[0].childNodes[0].nodeValue;
	}
}

function getRelated(idPlace, pageNo)
{
	var values=new Array();
	values[0]={name: "idPlace", value: idPlace};
	values[1]={name: "pageNo", value: pageNo};
	document.getElementById("relatedContainer").innerHTML='<img alt="Loading.." src="../resources/loading.gif"/>';
	sendHttpRequest("POST","../view/viewPlaceRelated.jsp",values,displayHtmlResponse,"relatedContainer");
}

function displayHtmlResponse(xmlHttp,idContainer)
{
	document.getElementById(idContainer).innerHTML=xmlHttp.responseText;
}

function getPlaceComments(idPlace, pageNo)
{
	var values=new Array();
	values[0]={name: "idPlace", value: idPlace};
	values[1]={name: "pageNo", value: pageNo};
	document.getElementById("placeCommentsContainer").innerHTML='<img alt="Loading.." src="../resources/loading.gif"/>';
	sendHttpRequest("POST","../view/viewPlaceComments.jsp",values,displayHtmlResponse,"placeCommentsContainer");
}

function recoverPassword()
{
	var values=new Array();
	values[0]={name: "register_user_name",value: document.getElementById("register_user_name").value};
	values[1]={name: "register_email",value: document.getElementById("register_email").value};
	var contentDiv=document.getElementById("fadezone_content");
	contentDiv.innerHTML='<img alt="Loading.." src="../resources/loading.gif"/>';
	sendHttpRequest("POST","../RecoverPassword",values,postRecoverPassword);
}
function postRecoverPassword(xmlHttp)
{
	var contentDiv=document.getElementById("fadezone_content");
	var parser=parse(xmlHttp.responseText);
	var answer=parser.getElementsByTagName("answer")[0];
	if(answer.getElementsByTagName("error").length>0)
	{
		contentDiv.innerHTML=answer.getElementsByTagName("error")[0].childNodes[0].nodeValue+
		'<input type="button" value="Close" onclick="closeOverPage(\'fadezone\');">'
		'<input type="button" value="Register" onclick="showOverPage(\'../access/register.jsp\',null,\'fadezone\');">';
	}
	else
	{
		contentDiv.innerHTML=answer.getElementsByTagName("msg")[0].childNodes[0].nodeValue+
		'<input type="button"  value="Login" onclick="showOverPage(\'../access/login.jsp\',null,\'fadezone\');">'+
		'<input type="button" value="Close" onclick="closeOverPage(\'fadezone\');">';
	}
}

function testFloat(object)
{
	if((object.value=="")==false)
	{
		var aux=parseFloat(object.value);
		if((aux==object.value)==false)
		{
			//alert("You must type a valid number.");
			object.focus();
			object.value="0";
		}
	}
}

function  mapMoved() {
	map.clearOverlays();
	if(document.getElementById("showPlaces").checked)
	{
		setTimeout("getMapItemsForMap(map,1)",200);
	}
	if(document.getElementById("showPhotoAlbums").checked)
	{
		setTimeout("getMapItemsForMap(map, 2)",400);
	}
	if(document.getElementById("showPOI").checked)
	{
		setTimeout("getMapItemsForMap(map, 3)",600);
	}
}

function getMapItemsForMap(map, idItemType)
{
	var values=new Array();
	var cornerPoint=map.getBounds().getSouthWest();

	values[0]={name: "pointSWlat", value: cornerPoint.lat()};
	values[1]={name: "pointSWlng", value: cornerPoint.lng()};
	cornerPoint=map.getBounds().getNorthEast();
	values[2]={name: "pointNElat", value: cornerPoint.lat()};
	values[3]={name: "pointNElng", value: cornerPoint.lng()};
	values[4]={name: "idItemType", value: idItemType};
	sendHttpRequest("POST","../GetMapItems",values,postGetMapItems,map);
}

function postGetMapItems(xmlHttp,map)
{
	var parser=parse(xmlHttp.responseText);
	var answer=parser.getElementsByTagName("answer")[0];
	if(answer.getElementsByTagName("error").length>0)
	{
		//
	}
	else
	{
		var places=answer.getElementsByTagName("place");
		for (i = 0; i < places.length; i++) {
			var mIcon = new GIcon(G_DEFAULT_ICON);
			var idType=places[i].getElementsByTagName("idType")[0].childNodes[0].nodeValue;
			//alert("idType: "+idType);
			var imgUrl=places[i].getElementsByTagName("img")[0].childNodes[0].nodeValue;
			mIcon.image =".."+imgUrl;
			switch (idType) {
			case "1":
				mIcon.infoWindowAnchor=new GPoint(10,32);
				break;
			case "2":
				mIcon.iconSize=new GSize(20,32);
				mIcon.infoWindowAnchor=new GPoint(10,32);
				break;
			case "3":
				mIcon.iconSize=new GSize(20,20);
				mIcon.iconAnchor =new GPoint(10,20);
				mIcon.infoWindowAnchor=new GPoint(10,20);
				mIcon.shadow = null;
				break;
			default:
				mIcon.image = "../resources/pin.png";
				break;
			}
			var markerOptions = { icon:mIcon};
			var marker=new GMarker(new GLatLng(places[i].getElementsByTagName("latitude")[0].childNodes[0].nodeValue,places[i].getElementsByTagName("longitude")[0].childNodes[0].nodeValue),markerOptions);
			map.addOverlay(marker);
			var markerContent=places[i].getElementsByTagName("placeInfo")[0].childNodes[0].nodeValue;
			marker.bindInfoWindowHtml(markerContent);
			GEvent.addListener(marker, "click", function(latLng) {
				GEvent.clearListeners(map, "moveend"); 
				  });
			if(document.getElementById("showPlaces"))
			{
			GEvent.addListener(marker, "infowindowbeforeclose", function() {
				GEvent.addListener(map, "moveend", mapMoved);
				  });
			}
			else
			{
				GEvent.addListener(marker, "infowindowbeforeclose", function() {
					GEvent.addListener(map, "moveend", poiMapMoved);
					  });
			}
		}
	}
}


function poiMapMoved(){
	  map.clearOverlays();
	  getMapItemsForMap(map, 3);
	  }

function addToFavorits(idObject,idObjectType)
{
	var values=new Array();
	values[0]={name: "idObject",value: idObject};
	values[1]={name: "idObjectType",value: idObjectType};
	showOverPage('../bookmarks/selectBookmarkFolder.jsp',values,'fadezone')
}

function saveBookMark(idFolder,idObject,idObjectType)
{
	var values=new Array();
	values[0]={name: "idBookmarkFolder",value: idFolder};
	values[1]={name: "idObject",value: idObject};
	values[2]={name: "idObjectType",value: idObjectType};
	var contentDiv=document.getElementById("fadezone_content");
	contentDiv.innerHTML='<img alt="Loading.." src="../resources/loading.gif"/>';
	sendHttpRequest("POST","../SaveBookMark",values,postSaveBookMark);
}

function postSaveBookMark(xmlHttp)
{
	closeOverPage('fadezone');
}

function showLoading(elementId)
{
	document.getElementById(elementId).innerHTML='<img alt="Loading.." src="../resources/loading.gif"/>';
}

function DisplayTour360(id)
{
    var iframeSelTour;
    iframeSelTour = document.getElementById("iframeSelTour");
    
    if(!iframeSelTour)
        return false;
        
    iframeSelTour.src = '../tours360/Iframe.jsp?tourId=' + id;
}

function rotateImage(direction)
{
	var bigContainer=document.getElementById("bigPhotoContainer");
	var img = document.getElementById("image")//document.createElement("img");
	img.onload = function () {
			bigContainer.innerHTML="";
			bigContainer.appendChild(img);
		}
	bigContainer.innerHTML='<img alt="Loading.." src="../resources/loading.gif"/>';
	var currentDegree=parseInt(document.getElementById("currentRotateDegres").value);
	if(direction==-1)
	{
		currentDegree-=90;
	}
	else
	{
		currentDegree+=90;
	}
	img.src = "../RotateImage?idPhoto="+document.getElementById("currentIdPhoto").value+"&degres="+currentDegree;
	document.getElementById("currentRotateDegres").value=currentDegree;
}

function searchAddress()
{
	var address=document.getElementById("address").value;
	var geocoder = new GClientGeocoder(); 
	geocoder.getLocations(address, searchAddressRespons);
}

function searchAddressRespons(response)
{
	document.getElementById("searchOnMapResult").style.display="block";
	if (!response || response.Status.code != 200) {
		return;
	}
	var cList=document.getElementById("responseResult");
	while(cList.childNodes.length>0)
	{
		cList.removeChild(cList.lastChild);
	}
	for(i=0;i < response.Placemark.length;i++)
	{
		var newComm=document.createElement("li");
		newComm.innerHTML=response.Placemark[i].address+"&nbsp;&nbsp;"
			+"<input type='button' value='Show' onclick=\"moveMapAt('"+response.Placemark[i].Point.coordinates[1]+"', '"+response.Placemark[i].Point.coordinates[0]+"');\">";
		//newComm.setAttribute("class", i%2==0?"odd":"even");
		cList.appendChild(newComm);
	}
}

function moveMapAt(lat, lng)
{
	var point = new GLatLng(lat,lng);
	map.setCenter(point,12);
}
function hide(idElement)
{
	document.getElementById(idElement).style.display="none";
}

function changeSelectByValue(ddlID, value, change) {
var ddl = document.getElementById(ddlID);
	for (var i = 0; i < ddl.options.length; i++) {
	   if (ddl.options[i].value == value) {
           if (ddl.selectedIndex != i) {
               ddl.selectedIndex = i;
               if (change)
                  ddl.onchange();
            }
        break;
        }
   }
}

function showPoi(lat, lng, zoom)
{
	if(poiMarker==null)
	{
		var mIcon=new GIcon(G_DEFAULT_ICON);
		mIcon.image="../resources/poi/poi-bid-red.png";
		mIcon.iconSize=new GSize(24,24);
		mIcon.iconAnchor =new GPoint(12,24);
		mIcon.infoWindowAnchor=new GPoint(12,24);
		mIcon.shadow = null;
		var markerOptions = { icon:mIcon};
		poiMarker=new GMarker(new GLatLng(lat,lng),markerOptions);
		map.addOverlay(poiMarker);
	}
	//GEvent.clearListeners(map, "moveend");
	map.setCenter(new GLatLng(lat,lng),parseInt(zoom));
	//GEvent.addListener(map, "moveend", poiMapMoved);
	poiMarker.setLatLng(map.getCenter());
}

function showPoiItem(idPoi)
{
	var values=new Array();
	values[0]={name: "idPoi", value: idPoi};
	sendHttpRequest("POST", "../poi/view.jsp", values, postShowPoiItem);
}

function postShowPoiItem(xmlHttp)
{
	document.getElementById("currentPOIContainer").innerHTML=xmlHttp.responseText;
}

function showPoiPage(pageNo, idCategory)
{
	var container=document.getElementById("poiListContainer");
	var values=new Array();
	values[0]={name: "pageNo",value: pageNo};
	values[1]={name: "idCategory",value: idCategory};
	sendHttpRequest("POST", "../poi/poiList.jsp", values, postShowPOIPage);
}

function postShowPOIPage(xmlHttp)
{
	var container=document.getElementById("poiListContainer");
	container.innerHTML=xmlHttp.responseText;
}

function editFunbox(idFunbox)
{
	document.getElementById("funBoxAddButton").style.display="none";
	var values=new Array();
	values[0]={name: "idFunBox",value: idFunbox};
	$("#pgSlider").toggle();
	sendHttpRequest("POST", "../funBox/edit.jsp", values, postEditFunbox);
}

function postEditFunbox(xmlHttp)
{
	var container=document.getElementById("addFunboxContainer");
	container.style.display="block";
	container.innerHTML=xmlHttp.responseText;
	var optionsDescription={iconsPath : '../resources/nicEditorIcons.gif',
			maxHeight : 200};
	new nicEditor(optionsDescription).panelInstance('funboxBody');
}

function cancelEditFunbox()
{
	var container=document.getElementById("addFunboxContainer");
	container.style.display="none";
	document.getElementById("funBoxAddButton").style.display="block";
}

function saveFunBox()
{
	nicEditors.findEditor('funboxBody').saveContent();
	var values=new Array();
	values[0]={name: "idFunBox",value: document.getElementById("idFunBox").value};
	values[1]={name: "name",value: document.getElementById("funboxName").value};
	values[2]={name: "body",value: document.getElementById("funboxBody").value};
	showOverPage("../SaveFunBox", values, "fadezone");
}

function getFunboxPage(pageNo,updateSlider)
{
	var values=new Array();
	values[0]={name: "pageNo",value: pageNo};
	sendHttpRequest("POST", "../funBox/funboxList.jsp", values, postGetFunboxPage);
	if(updateSlider){
	$("#pgSlider").slider("value",pageNo);
	}
}
function postGetFunboxPage(xmlHttp)
{
	document.getElementById("funBoxListContainer").innerHTML=xmlHttp.responseText;
}

function getPlacesPage(pageNo,updateSlider)
{
	var values=new Array();
	values[0]={name: "pageNo",value: pageNo};
	values[1]={name: "idCategory",value: document.getElementById("idCategory").value};
	values[2]={name: "idSubCategory",value: document.getElementById("idSubCategory").value};
	values[3]={name: "idUser",value: document.getElementById("idUser").value};
	sendHttpRequest("POST", "../view/placesList.jsp", values, postGetPlacesPage);
	if(updateSlider){
	$("#pgSlider").slider("value",pageNo);
	}
}
function postGetPlacesPage(xmlHttp)
{
	document.getElementById("placesContainer").innerHTML=xmlHttp.responseText;
}

function getPhotosPage(pageNo,updateSlider)
{
	var values=new Array();
	values[0]={name: "pageNo",value: pageNo};
	values[1]={name: "idUser",value: document.getElementById("idUser").value};
	sendHttpRequest("POST", "../photos/photosList.jsp", values, postGetPhotosPage);
	if(updateSlider){
	$("#pgSlider").slider("value",pageNo);
	}
}
function postGetPhotosPage(xmlHttp)
{
	document.getElementById("photosContainer").innerHTML=xmlHttp.responseText;
}

function g_next(){
	$("#gm_s").hide();
	$("#gm_q").show();
	$("#gm_ctnr").show();
	if(ansMarker!=null){
		map.removeOverlay(ansMarker);
		ansMarker=null;
	}
	$.ajax({
		type: 'POST',
		url:"../Next",
		data: "latitude=0&longitude=0",
				cache: false,
				dataType: 'json',
				success: function(data){
					rsTmr(true);
					if(data.err!='0'){
						if(data.err=='2'){
							$("#gm_q").html(data.gm);
							$("#gm_s").show();
							$("#gm_q").hide();
							$("#gm_ctnr").show();
							$("#q_ans").hide();
						}
						if(data.err=='1'){
							$("#q_ans").hide();
							$("#timer").hide();
							$("#gm_bt").show();
							$("#gm_q").html(data.gm);
							rsTmr(true);
						}
					}else{
						$("#gp").html(data.s);
						$("#gm_q").html(data.nq);
						$("#gm_bt").hide();
						$("#q_ans").hide();
						$('#tmr').val('10');
						$("#timer").show();
						$('#timer').html($('#tmr').val());
						$("#qno").html(data.gqno);
						setTimeout('tick()',1000);
					}
					
				}
		});
}

function g_ans(){
	var d="";
	if(marker!=null){
		d="latitude="+marker.getLatLng().lat()+"&longitude="+marker.getLatLng().lng()+"&ans=1";
	}
	$.ajax({
		type: 'POST',
		url:"../Next",
		data: d,
		cache: false,
		dataType: 'json',
		success: function(data){
			if(ansMarker!=null){
				map.removeOverlay(ansMarker);
				ansMarker=null;
			}
			rsTmr(false);
			if(data.err!='0'){
				if(data.err=='2'){
					$("#gm_s").show();
					$("#gm_ctnr").show();
					$("#q_ans").html(data.gm);
					$("#q_ans").show();
					$("#gm_bt").hide();
					$("#gp").html(data.s);
					var blueIcon = new GIcon(G_DEFAULT_ICON);
					blueIcon.image = "../resources/pin_1.png";
					var markerOptions = { icon:blueIcon, draggable: false};
					ansMarker=new GMarker(new GLatLng(data.ansLat, data.ansLon),markerOptions);
					map.addOverlay(ansMarker);
					//gm_ctnr
				}
				if(data.err=='1'){
					$("#q_ans").hide();
					$("#timer").hide();
					$("#gm_bt").show();
					$("#gm_q").html(data.gm);
					rsTmr(true);
				}
			}else{
				$("#gp").html(data.s);
				$("#q_ans").html(data.gm);
				$("#q_ans").show();
				$("#qno").html(data.gqno);
				
				var blueIcon = new GIcon(G_DEFAULT_ICON);
				blueIcon.image = "../resources/pin_1.png";
				var markerOptions = { icon:blueIcon, draggable: false};
				ansMarker=new GMarker(new GLatLng(data.ansLat, data.ansLon),markerOptions);
				map.addOverlay(ansMarker);
			}
		}
	});
}
function rsTmr(hmk){
	$('#tmr').val('-1');
	$("#gm_bt").show();
	$("#timer").hide();
	$("#q_ans").html("");
	
	if(hmk){
		if(marker!=null){
			map.removeOverlay(marker);
			marker=null;
		}
	}
}
function tick(){
	//alert($('#tmr').val());
	if($('#tmr').val()!='-1'){
		if($('#tmr').val()=='1'){
			rsTmr(true);
			$("#gm_q").html("Timpul a expirat");
		}else{
			$('#tmr').val(parseInt($('#tmr').val())-1);
			setTimeout('tick()',1000);
		}
		$('#timer').html($('#tmr').val());
	}
}