﻿var _Refresh = false;
var _msgExito = "";
var _msgFailed = "";
function GuardaFavorito(pageUrl,refresh,msgExito,msgFailed){
	_Refresh = refresh;	
	_msgExito = msgExito;
	_msgFailed = msgFailed;
	
	var DescFav = ""	
	if (window.document.getElementById("DescFavorito"))
		DescFav = window.document.getElementById("DescFavorito").value
	
	var params = "DescFav="+ escape(DescFav);
	
	favUpdateChanges(pageUrl,favShowResult,null,null,params);		
}

// mostra a mensagem resultante da operação efectuada
function favShowResult(content)
{	
	if (!Number(content)){
		alert(_msgFailed + ".\n["+content+"]")
	}
	else{
		alert(_msgExito);
		if (_Refresh)
			window.history.go(0);
	}	
}

// encarregasse de chamar o ajax 
function favUpdateChanges(url,functionToRun, divContent,carregarLabel,dataForm ){
    setTimeout(
          function() {
              if (divContent)
              {
                if( document.getElementById(divContent).innerHTML == '' )
                  document.getElementById(divContent).innerHTML = '<span>'+ carregarLabel +'</span>';
              }
          } , 1500);
    
    favAjaxPost(url, functionToRun,dataForm );
}

// funções de AJAX
function favAjaxPost(url, callback, dataForm){
function favAjaxBindCallback(){
      if (ajaxRequest.readyState == 4) {
          if (ajaxRequest.status == 200) {
            if (callback){                
                callback(ajaxRequest.responseText);                
            } else {
                alert('no callback defined');
            }
          } else {
             _favShowAjaxError(ajaxRequest);
             callback('');
          }
          delete ajaxRequest;
      }
    }

    var ajaxRequest = null;

      try {
        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
       try {
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
       } catch(ex) {
        try {
            ajaxRequest = new XMLHttpRequest();
        } catch(exc) {
            alert("Impossivel de efectuar carregamento via Ajax.");
            ajaxRequest = null;
        }
       }
      }

      if( ajaxRequest ){
        ajaxRequest.onreadystatechange = favAjaxBindCallback;
        ajaxRequest.open("POST", url, true);
		ajaxRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		//ajaxRequest.setRequestHeader ("Content-Type","text/html;charset=utf-8");
		if (dataForm == null){
		    ajaxRequest.send('');
		}
        else{
            ajaxRequest.send(dataForm);
        }        
      }
}
function _favShowAjaxError(ajaxRequest){
    try{
        alert('Error['+ajaxRequest.status+']: '+ ajaxRequest.statusText);          
    }catch(e){
        alert('Error['+ajaxRequest.status+']: '+ ajaxRequest.statusText + '\n\n'+ e.message);
    }
}
