﻿// JavaScript Document

/**************************************************************
 * Search Functions
 **************************************************************/

var _strPageSearch = "search.php";
var _strPageSearchIndex = "index.php";
var _objDescriptionParent = null;
var _iTypeSubDomain = 1; // 1: hellochao.com; 2: m.hellochao.com
var _currentPosX;
var _currentPosY;

function submitForm()
{
    // Submit    
    document.forms[0].submit();
}

function endSession(strPage)
{
    if(core.getObject("act") != null)
    {
        var act = core.getObject("act").value;

	    // Send end data to server	
	    if(act == ACT_CLEAR_SEARCH)
	    {
	        var ajax = new Ajax();	
	        ajax.SendRequestToServer(strPage, "act=" + ACT_CLEAR_SEARCH + 
	                                        "&sid=" + urlencode(core.getObject("sid").value), null, false);			
	    }
	}
}

function submitSearch()
{    
    // Check input
    if(core.trimAll(core.getObject("sct").value) == "")
    {
	   dlgBox.showDialog(SYSTEM_TITLE,MSG_SEARCH_CONTENT_VN,"submitSearch_OK()",null,2);
       return false;
    }
    
    // Set search action
    setAction(ACT_SEARCH);
    return true;   
}
function submitSearch_OK()
{
    core.getObject("sct").focus();    
}

function changeCategory(intCategoryID)
{
    // Set search action
    setAction(ACT_SEARCH); 
    
    var rdoCategory = document.forms['frmsearch'].elements["rdoCategory"];
    
    // Set category
    for(var i = 0; i < rdoCategory.length; i++)
    {
        if(rdoCategory[i].value == intCategoryID)
        {
            rdoCategory[i].checked = true;
            continue;
        }
        rdoCategory[i].checked = false;
    }
    
    // Submit
    //submitForm();
}

function onUnload()
{
    // Get page
    var arr = document.location.pathname.split('/');
    var strPage = arr[arr.length - 1];   

	endSession(strPage);

}


/**********************************************************************
 *
 * Change other result page
 *
 **********************************************************************/
var rtype=1;
function changeOtherResultPage(intPage,ptype) {
    rtype = ptype;
    // Create new ajax instance
    var ajax = new Ajax(METHOD_GET);

    // Send request
    ajax.SendRequestToServerWithCustomMsg(_strPageSearch+"?act=" + ACT_GET_OTHER_RESULT_BY_PAGE + "&type="+ ptype +"&pz=" + intPage + 
        "&sid=" + urlencode(core.getObject("sid").value)+ "&sct="+urlencode(core.getObject("sct").value)+"&selcat="+getSelectCheckedValue("selcat")+"&optLanguage="+ (core.getObject("langvn").checked==true?1:0),null, changeOtherResultPage_OnCallBack, true, MSG_AJAX_FETCHING_VN);
    
}

function changeOtherResultPage_OnCallBack(xmlHTTPRequest) {
    if (xmlHTTPRequest.readyState == 4) {
        if (xmlHTTPRequest.status == 200) {

            var arrResponse = xmlHTTPRequest.responseText.split(SEP_RESPONSE);
            if (rtype==1)
            {
                core.getObject("spanOtherResult").innerHTML = arrResponse[1];
                core.getObject("spanOtherResultPageNaviTop").innerHTML = arrResponse[2];
                core.getObject("spanOtherResultPageNaviBottom").innerHTML = arrResponse[2];            
            }
            else
            {
                core.getObject("spanCOtherResult").innerHTML = arrResponse[1];
                core.getObject("spanCOtherResultPageNaviTop").innerHTML = arrResponse[2];
                core.getObject("spanCOtherResultPageNaviBottom").innerHTML = arrResponse[2];
            }
        }
    }
}

function getComment(intMethod) {

    var compz = core.getObject("compz");
    var intPage = parseInt(compz.value) + ((intMethod == 1) ? 1 : -1);

    // Store page
    compz.value = intPage;

    // Hide previous
    if (intPage <= 1) {
        core.showHide("spanCommentPre", false);
        core.showHide("spanCommentPreTop", false);
    }
    else {
        core.showHide("spanCommentPre", true);
        core.showHide("spanCommentPreTop", true);
    }
   
    // Create new ajax instance
    var ajax = new Ajax();

    // Send request
    ajax.SendRequestToServerWithCustomMsg(_strPageSearch, "act=" + ACT_GET_COMMENT + "&compz=" + intPage, 
        getComment_OnCallBack, true, MSG_AJAX_FETCHING_VN);
}

function getComment_OnCallBack(xmlHTTPRequest) {
    if (xmlHTTPRequest.readyState == 4) {
        if (xmlHTTPRequest.status == 200) {
            // Get xml document
            var arrResponse = xmlHTTPRequest.responseText.split(SEP_RESPONSE);
            
            // Hide next if end of comment
            if (parseInt(arrResponse[2]) == 0) {
                core.showHide("spanCommentNext", false);
                core.showHide("spanCommentNextTop", false);
            }
            else {
                core.showHide("spanCommentNext", true);
                core.showHide("spanCommentNextTop", true);
            }
            
            // Set comment content
            core.getObject("spanComment").innerHTML = arrResponse[1];
        }
    }
}

function suggestSearch(intCat)
{
    if (intCat==0)
    {
        core.getObject("langen").checked=true;
    }
    else
    {
        core.getObject("langvn").checked=true;
    }
    setAction(ACT_SEARCH);
    submitForm();
}

function focusSearchBox()
{
    if (core.getObject("sct")!=null)
    {
        core.getObject("sct").focus();
        core.getObject("sct").select();
    }
};

var _cacheURL_psch;
function addFavorite(strDocId)
{
    var currentRow = core.getObject("env"+strDocId);
    var arrArgument = new Array();

    arrArgument[0] = "<div class=\"div-dialog_box_sub_content\">" + clearBoldFormat(currentRow.innerHTML) + "</div>";

    // Build message
    strMessage = stringFormat(CONFIRM_ADDED_FAVORITE_DOC, arrArgument);
    
    // Show confirm message
    dlgBox.showDialog(FAVORITE_TITLE,strMessage,"addFavorite_OK()",null,1);
    
    // Cache docID and URL
    _cacheURL_psch = _strPageSearch+ "?isAJ=1&act=" + ACT_ADD_FAVORITE + "&docid=" + urlencode(strDocId)+"&sid="+core.getObject("sid").value;
}
function addFavorite_OK()
{
    var ajax = new Ajax(METHOD_GET);
    ajax.SendRequestToServerWithCustomMsg(_cacheURL_psch, null, addFavorite_OnCallBack, true, MSG_AJAX_FETCHING_VN);    
}
function addFavorite_OnCallBack(xmlHTTPRequest) {
    if (xmlHTTPRequest.readyState == 4) {
        if (xmlHTTPRequest.status == 200) {
            // Hide dialog
            dlgBox.screenUnCover();
            // Get xml document
            var strRespond = xmlHTTPRequest.responseText.split(SEP_RESPONSE);
		    if (!headerProcessing(strRespond[0],strRespond[1],strRespond[2],true,true,false))
            {
                return;
            }		
		    if(parseInt(strRespond[3]) == 0)		   
		    {	
		        showMessage(strRespond[4]);
		        // light up favourite icon
		        core.getObject(strRespond[5]).src = "images/fav2.png";
		        core.getObject(strRespond[5]).title = "Bỏ chọn làm cặp câu yêu thích";
		        //core.getObject(strRespond[5]).parentNode.innerHTML=core.getObject(strRespond[5]).parentNode.innerHTML.replace(/addFavorite/g,"clearFavorite");
		        core.getObject(strRespond[5]).parentNode.href=core.getObject(strRespond[5]).parentNode.href.replace(/addFavorite/g,"clearFavorite");
		    }
		    else if(parseInt(strRespond[3]) == -1)
		    {
		        showMessage(strRespond[4]);
		    }		    
        }
    }
}
function clearFavorite(strDocId)
{
    var currentRow = core.getObject("env"+strDocId);
    var arrArgument = [];
    
    arrArgument[0] = "<div class=\"div-dialog_box_sub_content\">" + clearBoldFormat(currentRow.innerHTML) + "</div>";

    // Build message
    strMessage = stringFormat(CONFIRM_DELETE_FAVORITE_DOC, arrArgument);

    // Show confirm message
    dlgBox.showDialog(FAVORITE_TITLE,strMessage,"clearFavorite_OK()",null,1);
    
    // Cache docID and URL
    _cacheURL_psch = _strPageSearch + "?isAJ=1&act=" + ACT_CLEAR_FAVORITE +"&docid="+urlencode(strDocId)+"&sid="+core.getObject("sid").value;
}
function clearFavorite_OK()
{
    var ajax = new Ajax(METHOD_GET);
    ajax.SendRequestToServerWithCustomMsg(_cacheURL_psch,null, clearFavorite_OnCallBack, true, MSG_AJAX_FETCHING_VN);    
}
function clearFavorite_OnCallBack(xmlHTTPRequest) {
    if (xmlHTTPRequest.readyState == 4) {
        if (xmlHTTPRequest.status == 200) {
            // Get xml document
            var strRespond = xmlHTTPRequest.responseText.split(SEP_RESPONSE);
		    if (!headerProcessing(strRespond[0],strRespond[1],strRespond[2],true,true,false))
            {
                return;
            }		
		    if(parseInt(strRespond[3]) == 0)		   
		    {	
		        showMessage(strRespond[4]);
		        // Light down favourite icon
		        core.getObject(strRespond[5]).src = "images/fav1.png";
		        core.getObject(strRespond[5]).title = "Chọn làm cặp câu yêu thích";
		        //core.getObject(strRespond[5]).parentNode.innerHTML=core.getObject(strRespond[5]).parentNode.innerHTML.replace(/clearFavorite/g,"addFavorite");
		        core.getObject(strRespond[5]).parentNode.href=core.getObject(strRespond[5]).parentNode.href.replace(/clearFavorite/g,"addFavorite");
		    }
		    else if(parseInt(strRespond[3]) == -1)
		    {
		        showMessage(MSG_SERVER_ERROR);
		    }		    
        }
    }
}

function showDocBad(strDocId)
{
    var currentRow = core.getObject("env"+strDocId);
    // set content for dialog
    core.getObject("enBad").innerHTML = clearBoldFormat(currentRow.innerHTML);
    core.getObject("rct").value = "";
    core.getObject("btnDocBad").onclick = function(){addDocBad(strDocId);};
    
    // Show dialog
    dlgBox.showDivAsDialog('divReportBadDoc');
    
    // Set focus
    core.getObject("rct").focus();
}

function addDocBad(strDocId)
{
    var ajax = new Ajax(METHOD_GET);
    ajax.SendRequestToServerWithCustomMsg(_strPageSearch+"?isAJ=1&act=" + ACT_ADD_DOC_BAD + "&did="+ strDocId +"&rct="+urlencode(core.getObject("rct").value),null, 
        addDocBad_OnCallBack, true, MSG_AJAX_FETCHING_VN);
}
function addDocBad_OnCallBack(xmlHTTPRequest) {
    if (xmlHTTPRequest.readyState == 4) {
        if (xmlHTTPRequest.status == 200) {
            // Hide dialog
            dlgBox.hideDivAsDialog('divReportBadDoc');
            // Get xml document
            var strRespond = xmlHTTPRequest.responseText.split(SEP_RESPONSE);
		    if (!headerProcessing(strRespond[0],strRespond[1],strRespond[2],true,true,false))
            {
                return;
            }		
		    if(parseInt(strRespond[3]) == 0)		   
		    {		    
		        showMessage(MSG_RES_OPERATION_SUCCESS);
		    }
		    else if(parseInt(strRespond[3]) == -1)
		    {
		        showMessage(MSG_RES_OPERATION_FAIL);
		    }		    
        }
    }
}

function getAjaxSearch()
{
    //var strRequest = "?isAJ=1&act=" + ACT_GET_USER_RESULT + "&sct="+urlencode(core.getObject("sct").value)+ "&sid="+core.getObject("sid").value+"&lang="+(core.getObject("langen").checked?"0":"1")+"&selcat="+getSelectCheckedValue("selcat").toString()+"&kwid="+core.getObject("kwid").value;
    var strRequest = "?isAJ=1&act=" + ACT_GET_USER_RESULT + "&sct="+urlencode(core.getObject("sct").value)+ "&sid="+core.getObject("sid").value+"&lang="+(core.getObject("langen").checked?"0":"1")+"&kwid="+core.getObject("kwid").value;    
    var ajax = new Ajax(METHOD_GET);
    ajax.SendRequestToServerWithCustomMsg(_strPageSearch+strRequest, null, getAjaxSearch_OnCallBack, true, MSG_AJAX_FETCHING_VN);
}
function getAjaxSearch_OnCallBack(xmlHTTPRequest) {
    if (xmlHTTPRequest.readyState == 4) {
        if (xmlHTTPRequest.status == 200) {
            var strRespond = parserXML(xmlHTTPRequest.responseText);
		    if (!headerProcessingArr(strRespond[0],Array(true,true,false)))
            {
                return;
            }
		    if(parseInt(strRespond[1]["rs"])==1)
		    {
		        if (strRespond[1]["nf"])
		        {
		            core.getObject("divNotFound").innerHTML = strRespond[1]["nf"];
		        }
		        if (strRespond[1]["sg"])
		        {
		            core.getObject("divNotFound").innerHTML = "";
		            core.getObject("divCSuggestResult").style.display = "block";
		            core.getObject("spanCSuggestResult").innerHTML = strRespond[1]["sg"];
		        }
		        else
		        {
		            core.getObject("divCSuggestResult").style.display = "none";
		        }
		        if (strRespond[1]["ot"])
		        {
		            core.getObject("divNotFound").innerHTML = "";
		            core.getObject("divCOtherResult").style.display = "block";
		            core.getObject("spanCOtherResult").innerHTML = strRespond[1]["ot"];
		        }
		        else
		        {
		            core.getObject("divCOtherResult").style.display = "none";
		        }
		        if (strRespond[1]["pg"])
		        {    
		            core.getObject("spanCOtherResultPageNaviTop").innerHTML = strRespond[1]["pg"];	
		            core.getObject("spanCOtherResultPageNaviBottom").innerHTML = strRespond[1]["pg"];	         
		        }   
		    }
		    else
		    {
		        showMessage(MSG_RES_OPERATION_FAIL);
		    }
        }
    }
}

/**
* Show security code dialog for search screen
* iTypeSubDomain int 1 or not pass: for hellochao.com; 2: for m.hellochao.com
* @author DoNguyen added [20100514]
*/
function showSecCode()
{
    // Init user_capcha class
    uCapcha = new user_capcha(_iTypeSubDomain);
    // Show dialog and pass function to call back
    uCapcha.showSecurityCodeImage(verifySearchSecurityCode)    
}

/**
* Xu ly Ajax khi da co toa do cua diem click tren IMAGE
* @author DoNguyen added [20100514]
*/
function verifySearchSecurityCode(x,y)
{
    var strRequest = "?isAJ=1&act=" + ACT_VERIFY_SEARCH_SECURITY_CODE + "&x=" + x + "&y=" + y;
    var ajax = new Ajax(METHOD_GET);
    ajax.SendRequestToServerWithCustomMsg(_strPageSearch+strRequest, null, verifySearchSecurityCode_OnCallBack, true, MSG_AJAX_FETCHING_VN);        
}
function verifySearchSecurityCode_OnCallBack(xmlHTTPRequest) 
{
    if (xmlHTTPRequest.readyState == 4) {
        if (xmlHTTPRequest.status == 200) {
            
            // Get xml document
            var strRespond = xmlHTTPRequest.responseText;
		    if(parseInt(strRespond) == 1) // Verify OK
		    {		    
                window.location.reload();                            
		    }
		    else // Input wrong security code
		    {
                // Init user_capcha class
                uCapcha = new user_capcha(_iTypeSubDomain);
                // Reload images
                uCapcha.reloadSecurityCodeImage(); 		        
		    }		    
        }
    }
}

