var http = createRequestObject();
var ajaxConnectionFav   = new AJAXConnection('ajaxConnectionFav');

        // Initialize templates
var favTemplate = new DivTemplate();

function createRequestObject() {
        var xmlHttp;
        var browser = navigator.appName;
        if (window.XMLHttpRequest){
                // If Firefox/Mozilla, Safari, IE7 etc: Use native Javascript object...
                var xmlHttp = new XMLHttpRequest();
        }
        else
        {  if (window.ActiveXObject){
                // ...otherwise, use the ActiveX control for IE5.x and IE6
                var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
           }
        }
        return xmlHttp;
}

function xmlhttpFavSave(strPERF, strITEM, strTME) {

   var strURL = "load_fav.php?action=save&performer_id="+strPERF+"&t="+strTME;
   ajaxConnectionFav.xmlhttpPost(strITEM, strURL, favTemplate);
}

function xmlhttpFavDel(strPERF, strITEM, strTME) {

   var strURL = "load_fav.php?action=del&performer_id="+strPERF+"&t="+strTME;
   ajaxConnectionFav.xmlhttpPost(strITEM, strURL, favTemplate);
}

function xmlhttpPost(strITEM, strURL) {
    http.open('POST', strURL);
    http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
    http.onreadystatechange = function() {
        if (http.readyState == 4) {
            updatepage(strITEM, http.responseText);
        }
    }
    http.send('var=1');
}

function updatepage(strITEM, strTEXT){
    if( document.getElementById(strITEM) )
    {  document.getElementById(strITEM).innerHTML = strTEXT;  }
}

/** A AJAXConnection class  */
function AJAXConnection(name) {
    this.className = 'AJAXConnection';

    /** Default construtor
     *
     * name - div name
     */
    {
        this.name = name;
    }

    this.xmlhttpPost = function (strITEM, strURL, functionObj) {
        var xmlHttpReq = false;
        var self = this;
        // Mozilla/Safari
        if (window.XMLHttpRequest) {
            self.xmlHttpReq = new XMLHttpRequest();
            if (self.xmlHttpReq.overrideMimeType) {
                self.xmlHttpReq.overrideMimeType('text/xml');
                // See note below about this line
            }
        // IE
        } else if (window.ActiveXObject) { // IE
            try {
                self.xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
            }
        }
        if (!self.xmlHttpReq) {
            return false;
        }
        self.xmlHttpReq.open('POST', strURL, true);
        self.xmlHttpReq.setRequestHeader('Content-Type',
            'application/x-www-form-urlencoded');
        self.xmlHttpReq.onreadystatechange = function() {
            _callBackFunction(self.xmlHttpReq, strITEM, functionObj);
        };
        self.xmlHttpReq.send("");
    }
    _callBackFunction = function (http_request, strITEM, functionObj) {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                functionObj.callBackFunction(strITEM, http_request.responseText);
            }
        }
        }
}

/** A MovieTemplate class */
function DivTemplate() {
    this.className = 'SearchTemplate';

    /** Call Back Function - called by AJAXAdaptor
     *
     * str - string from XMLHttpRequest
     */
    this.callBackFunction = function(strITEM, str) {
        updatepage(strITEM, str);
    }
}

