var urlBase = '',
	urlProtocol = '',
	urlMod = '',
	currentUrl = window.location.href,
	urlProv = '',
	urlGeo = '',
	urlRub = '',
	urlQry = '',
	urlPage = '1',
	sWhatName = '',
	sWhereName = '',
	mapArray = new Array();

var	openTab = '',
	targetDiv = '';

function prepareURL(){
	var reqURI;

	if (urlQry != '') urlQry = encodeURIComponent(urlQry)+'/';
	if (urlGeo != ''){
        var geoArray = new Array(),
        	geoString = new String(urlGeo);
		geoArray = geoString.split('-');
		switch(geoArray.length){
			case 0:
			case 1:
			case undefined:
				urlProv = 'www';
				urlGeo = '';
				break;
			case 2:
				urlProv = geoArray[1];
				urlGeo = '';
				break;
			case 3:
				urlProv = geoArray[0];
				urlGeo = geoArray[1]+'/';
				break;
			case 4:
				urlProv = geoArray[1];
				urlGeo = geoArray[2]+'-'+geoArray[3]+'/';
				break;
		}
	}
	if (urlRub != '') urlRub = urlRub+'/';

	return urlProtocol+urlProv+urlBase+urlMod+urlQry+urlGeo+urlRub+urlPage+'/';
};

function initGuide(){	var parsedURI = parseURI();

	urlProv = parsedURI[0].substring(0,parsedURI[0].indexOf('.'));
	urlBase = parsedURI[0].substring(urlProv.length)+'/';
   	urlMod = 'apa/';

	switch(parsedURI.length){
		case 4:
			urlQry = sWhatName = decodeURIComponent(parsedURI[2]);
			break;
		case 5:
			urlQry = sWhatName = decodeURIComponent(parsedURI[2]);
			urlGeo = 'ar'+'-'+urlProv+'-'+parsedURI[3];
			break;
		case 6:
			urlQry = sWhatName = decodeURIComponent(parsedURI[2]);
			urlGeo = 'ar'+'-'+urlProv+'-'+parsedURI[3];
			urlRub = parsedURI[4];
			break;
	}

}

function parseURI(){	var url = new String(currentUrl),
		urlArray = new Array();

	urlProtocol = url.substring(0, url.indexOf('//')+parseInt(2));
	url = url.substring(url.indexOf('//')+parseInt(2), url.lastIndexOf('/'));
	urlArray = url.split('/');

    return urlArray;
}


function tabSel(aEvent){
	aEvent.preventDefault();

	if (openTab != ""){
		$(openTab).slideUp("slow");
		openButton = openTab.substring(1);
		$("a[name="+openButton+"]").removeClass("selected");
	}

	targetDiv = "#" + $(this).attr("name");

	if ($(targetDiv).is(":hidden")) {
		$(targetDiv).slideDown("slow");
		$(this).addClass("selected");
		openTab = targetDiv;
		if (aEvent.data){aEvent.data.action(targetDiv.substring(7))}
	}else{
		$(targetDiv).slideUp("slow");
	}
}


function apa_mailTabDo(res){	var $div = $(targetDiv);

	$div.find('.innerTabInfo').html(res);

	// Bind Mail Form
	$('form.mailForm').bind("submit", function(aEvent){

		var send = true;
	    var options = {
	    	url:		'/guia-sendMail.do',
	        success:	apa_guide_mailResponse
	    };
        var inputName = $(this).find('input[name="u_nombre"]');
        var inputCons = $(this).find('textarea');
        var inputMail = $(this).find('input[name="u_mail"]');

        aEvent.preventDefault();

		if (inputName.val() == ""){
            inputName.addClass('err');
			 send = false;
   	 	}else
   	 		inputName.removeClass('err');

		if (inputCons.val() == ""){
            inputCons.addClass('err');
			send = false;
   	 	}else
   	 		inputCons.removeClass('err');;

		if (inputMail.val() != ""){
            var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
            if (!filter.test(inputMail.val())){
            	inputMail.addClass('err');
				send = false;
			}else
				inputMail.removeClass('err');
   	 	}else
   	 		inputMail.removeClass('err');

    	if (send){$(this).ajaxSubmit(options)};
	    return false;
	});
}


function apa_dirTabDo(res){

	var jsonResponse = JSON.parse(res);

	if (jsonResponse.success == 'TRUE'){
		var $mapdiv = $(targetDiv).find('.dirmap');
    	var divID = $mapdiv.attr('id');
		if (GBrowserIsCompatible()) {
			if (!mapArray.divID || mapArray.divID != divID){				mapArray.divID = divID;
		    	mapArray.divMap = apa_gmap_createMap(divID,jsonResponse.lat,jsonResponse.long,15);
		    	apa_gmap_makeMarker(mapArray.divMap, jsonResponse.lat,jsonResponse.long);
		 	}else{
		 		if (mapArray.divMap.isLoaded()){		 			apa_gmap_moveMap(mapArray.divMap,jsonResponse.lat,jsonResponse.long,15);
			    	apa_gmap_makeMarker(mapArray.divMap, jsonResponse.lat,jsonResponse.long);
		 		}else{		 			apa_gmap_createMap(mapArray.divMap,jsonResponse.lat,jsonResponse.long,15);
			    	apa_gmap_makeMarker(mapArray.divMap, jsonResponse.lat,jsonResponse.long);
		 		}
		 	}
		}
    }
}


function apa_guide_mailResponse(responseText, statusText){	var $div = $(targetDiv);

	var jsonResponse = JSON.parse(responseText);

	if (jsonResponse.ok == true){		$div.find('.innerTabInfo').fadeOut(5000, function(){$div.find('.innerTabInfo').html('<div class="mailFormSendOk"></div>').fadeIn('slow')});
	}else{		$div.find('.innerTabInfo').fadeOut(5000, function(){$div.find('.innerTabInfo').html('<div class="mailFormSendError"></div>').fadeIn('slow')});
	}
}


function apa_guide_catNav_displayList(responseText){	var div = $("#navCat").find(".srubs");

	div.find(".inner").html(responseText);
	div.find("ul > li").each(function(){		var title = $(this).find('a').html();		$(this).find("a").attr("alt", title).attr("title", title).tooltip({
																    track: true,
																    delay: 0,
																    showURL: false,
																    showBody: " - ",
																    fade: 250
																});
	});
	div.find(".open > .closeBot").bind("click", function(aEvent){		$("#navCat").find(".srubs").hide();	});
	div.find("ul").apa_UIList();
	div.slideDown("slow");
}

$(document).ready(function() {
	initGuide();

	$("a.tabLink").bind('click',tabSel);
	$("a.tabLinkMail").bind('click',{action: function(tabId){														apa_doRequest('/guia-sendMail.do','id='+tabId, apa_mailTabDo);
													   }},tabSel);
	$("a.tabLinkDir").bind('click',{action: function(tabId){														var sucId = $('#tabDir'+tabId).find('a.selected').attr('id');
														apa_doRequest('/guia-sucLatLong.do','id='+sucId, apa_dirTabDo);
													   }},tabSel);

	$("a.tabSucSel").click(function(aEvent){
		aEvent.preventDefault();		var datID = $(this).attr("id");
		apa_doRequest('/guia-sucLatLong.do','id='+datID, apa_dirTabDo);
		$(this).parent().find("a").removeClass("selected");
		$(this).parent().parent().parent().find(".dirdat > p").slideUp("slow");
		$(this).addClass("selected");		$(this).parent().parent().parent().find(".dirdat > #dirdat" + datID).slideDown("slow");
	});

	$("img.openSuggest").click(function(aEvent){		aEvent.preventDefault();		$("#suggestInt").slideToggle("slow");

	});

	$(".sWhat").apa_UIsuggest('/makesuggest.do',{		fieldName: sWhatName,		onClickDo: function(aEvent){
			aEvent.preventDefault();
			$(".sWhat").val($(this).text());
			urlQry = $(this).parent().attr("id");
			aEvent.data.divDisplay.slideUp("slow");
		},
		onChangeDo: function(currentValue){			urlQry = currentValue;
		}	}).attr("title", "&iquest;Qu&eacute; desea buscar? - Ej: Tornillos, Viajes, etc.")
	  .tooltip({
		    track: true,
		    delay: 0,
		    showURL: false,
		    opacity: 1,
		    fixPNG: true,
		    showBody: " - ",
		    extraClass: "pretty fancy",
		    top: -15,
		    left: 5
			});

	$(".sWhere").apa_UIsuggest('/makesuggest-geo.do',{		fieldName: sWhereName,	    resultCols: new Array("sLoc", "sProv", "sPais"),
	    resultColsName: new Array("Localidad", "Provincia", "Pais"),
		onClickDo: function(aEvent){
			aEvent.preventDefault();
			$(".sWhere").val($(this).text());
			urlGeo = $(this).parent().attr("id");
			aEvent.data.divDisplay.slideUp("slow");
		},
		onChangeDo: function(currentValue){
			urlGeo = currentValue;
		}	}).attr("title", "&iquest;En donde desea buscar? - Ej: Lomas de Zamora")
	  .tooltip({
		    track: true,
		    delay: 0,
		    showURL: false,
		    opacity: 1,
		    fixPNG: true,
		    showBody: " - ",
		    extraClass: "pretty fancy",
		    top: -15,
		    left: 5
			});

	$("#searchSubmitBot").click(function(aEvent){		var urlFormated;
		aEvent.preventDefault();
		if (!(urlQry == '')){			urlFormated = prepareURL();			location.href = urlFormated;
		}
		return false;	});

	$("#navCat").find("ul").apa_UIList({max:8})
						   .children().bind("click", function(aEvent){
						   		$("#navCat").find(".srubs").find("h1").html($(this).html());
						   		var rid = $(this).attr("id");
						   		rid = rid.substring(3);
						   		q = "rid="+rid;
						   		apa_doRequest("/guia-rubList.do", q, apa_guide_catNav_displayList);
						   	});
});
