﻿function XMLHttpSend (method, data)
{
    var ykxmlHttp;
    try 
    {
        ykxmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    catch (e) 
    {
        try 
        {
            ykxmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e2)
        {
            ykxmlHttp = false;
        }
    }

    if (!ykxmlHttp && typeof XMLHttpRequest != 'undefined') 
    {
        ykxmlHttp = new XMLHttpRequest();
    }
    
    if (data == null)
    {
        ykxmlHttp.open("Get", "/YakueAjaxSets.aspx", false);
        ykxmlHttp.setRequestHeader("If-Modified-Since","0");
        ykxmlHttp.setRequestHeader("ykAjax_Method",method);

        ykxmlHttp.send(null);
    }
    else
    {
        ykxmlHttp.open("Post", "/YakueAjaxSets.aspx", false);
        ykxmlHttp.setRequestHeader("If-Modified-Since","0");
        ykxmlHttp.setRequestHeader("ykAjax_Method",method);
        
        ykxmlHttp.setRequestHeader("Content-Length",data.length);
        ykxmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        ykxmlHttp.send(data);
    }
    
    if (ykxmlHttp.readyState == 4) 
    {
        var ret = ykxmlHttp.responseText;
        if (ret.indexOf ("www_yakue_com:ajax_ret=") != 0) return null;
        ret = ret.substring (23, ret.length);
        return ret;
    } 
    else
    {
        return null;
    }
}


function XMLHttpSendAsync (method, data, callbackFunc)
{
    var ykxmlHttp;
    try 
    {
        ykxmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    catch (e) 
    {
        try 
        {
            ykxmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e2)
        {
            ykxmlHttp = false;
        }
    }

    if (!ykxmlHttp && typeof XMLHttpRequest != 'undefined') 
    {
        ykxmlHttp = new XMLHttpRequest();
    }
    
    if (data == null)
    {
        ykxmlHttp.open("Get", "/YakueAjaxSets.aspx", true);
        ykxmlHttp.setRequestHeader("If-Modified-Since","0");
        ykxmlHttp.setRequestHeader("ykAjax_Method",method);
        ykxmlHttp.onreadystatechange = function(){callbackFunc(ykxmlHttp);};

        ykxmlHttp.send(null);
    }
    else
    {
        ykxmlHttp.open("Post", "/YakueAjaxSets.aspx", true);
        ykxmlHttp.setRequestHeader("If-Modified-Since","0");
        ykxmlHttp.setRequestHeader("ykAjax_Method",method);
        
        ykxmlHttp.setRequestHeader("Content-Length",data.length);
        ykxmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        ykxmlHttp.onreadystatechange = function(){callbackFunc(ykxmlHttp);};

        ykxmlHttp.send(data);
    }
}

function _YakueAjaxSets()
{
    this.params = new Array();
    
    this.CheckThisUser = function(UserName)
    {   
        var ret = XMLHttpSend ("CheckThisUser", "UserName="+escape(UserName));
        return ret;
    };
    this.GetPublicKey = function()
    {
        var ret = XMLHttpSend ("GetPublicKey");
        return ret;
    };
    this.Login = function(UserName, Password, Remember)
    {
        var ret = XMLHttpSend ("Login", "UserName="+escape(UserName)+"&Password="+escape(Password)+"&Remember="+Remember);
        return ret;
    };
    this.AddFavorite = function(Url)
    {   
        var ret = XMLHttpSend ("AddFavorite", "Url="+escape(Url));
        return ret;
    };
    this.GetDocumentUpdate = function(Url, Referrer, callbackFunc)
    {
        XMLHttpSendAsync  ("GetDocumentUpdate", "Url="+escape(Url)+"&Referrer="+escape(Referrer), callbackFunc);
    };
    this.EvaluateDocument = function(Url, UpOrDown)
    {
        var ret = XMLHttpSend ("EvaluateDocument", "Url="+escape(Url)+"&UpOrDown="+UpOrDown);
        return ret;
    };
    this.EmailFriend = function(Url, Email)
    {
        var ret = XMLHttpSend ("EmailFriend", "Url="+escape(Url)+"&Email="+escape(Email));
        return ret;
    };
    this.ComplaintDocument = function(Url, modeValue, Reason, UserName, Password)
    {
        var ret = XMLHttpSend ("ComplaintDocument", "Url="+escape(Url)+"&Mode="+modeValue+(Reason.length>0 ? "&Reason="+escape(Reason) : "")+(UserName.length>0 ? "&UserName="+escape(UserName) : "")+(Password.length>0 ? "&Password="+escape(Password) : ""));
        return ret;
    };
    this.DiscussDocument = function(DocId, Discuss, Anonymous, UserName, Password)
    {
        var ret = XMLHttpSend ("DiscussDocument", "DocId="+DocId+"&Discuss="+escape(Discuss)+"&Anonymous="+Anonymous+(UserName.length>0 ? "&UserName="+escape(UserName) : "")+(Password.length>0 ? "&Password="+escape(Password) : ""));
        return ret;
    };
    this.GetYakueNotice = function()
    {
        var ret = XMLHttpSend ("GetYakueNotice");
        return ret;
    };
}

var YakueAjaxSets = new _YakueAjaxSets();


