﻿var currentActiveAutoCompletionItem = null;
function activeAutoCompletionItem(itemTr)
{
    if(currentActiveAutoCompletionItem)
    {
        currentActiveAutoCompletionItem.className = "AutoCompletionItem_unselected";    
    }
    
    if(itemTr)
    {
        itemTr.className = "AutoCompletionItem_selected";
        currentActiveAutoCompletionItem = itemTr;
    }
     
}

function selectAutoCompletionItem(itemTr)
{ 
    var txtQuery = document.getElementById('txtQuery');
    txtQuery.value = itemTr.info.FullText;
    query();
}

function activeAutoCompletionItemByOffset(offset)
{
    var tabAutoCompletion = document.getElementById('tabAutoCompletion').childNodes[0];
    if(tabAutoCompletion)
    {
        var indexOfNewActiveItem = 0;
        for(var i = 0; i < tabAutoCompletion.children.length; i++)
        {
            if(tabAutoCompletion.children[i] == currentActiveAutoCompletionItem)
            {
                indexOfNewActiveItem = i + offset;
                break;
            }
        }
        
        if(indexOfNewActiveItem < 0) 
        {
            indexOfNewActiveItem = 0;
        }
        else if(indexOfNewActiveItem >= tabAutoCompletion.children.length)
        {
            indexOfNewActiveItem = tabAutoCompletion.children.length - 1;
        }
         
        activeAutoCompletionItem(tabAutoCompletion.children[indexOfNewActiveItem]);
    }
    
}

function clearAutoCompletionList()
{   
    var tabAutoCompletion = document.getElementById('tabAutoCompletion');
    currentActiveAutoCompletionItem = null;
    lastAutoCompletionText = null;

    while(tabAutoCompletion.children.length > 0)
    {
        tabAutoCompletion.removeChild(tabAutoCompletion.children[0]);
    }
}

var lastAutoCompletionText = null;
var SearchText = null;
function autoCompletion(text,type)
{
    closeAutoCompletion();
     
    if(text)
    { 
        text = text.trim();
             
        if(text.length > 0)
        {  
            if(lastAutoCompletionText != text)
            {
                var tabAutoCompletion = document.getElementById('tabAutoCompletion');
                
                //clearAutoCompletionList();
                closeAutoCompletion();
                
            var wRequest =  new Sys.Net.WebRequest();
            // Set the request Url.  
            wRequest.set_url("ServicesAudition.asmx/QueryAutoCompletionInfo?text="+escape(text)+"&type="+escape(type));  
            // Set the request verb.
            wRequest.set_httpVerb("GET");
            // Set user's context
        //    wRequest.set_userContext("user's context");
            // Set the web request completed event handler,
            // for processing return data.
            wRequest.add_completed(OnAutoSearchCompleted);
            // Execute the request.
            wRequest.invoke();  
                
//                var result = MasterPage.QueryAutoCompletionInfo(text,type).value;

                text = text.replace(/\[/gi,'\\[');
                text = text.replace(/\]/gi,'\\]');
                text = text.replace(/\(/gi,'\\(');
                text = text.replace(/\)/gi,'\\)');
                text = text.replace(/\{/gi,'\\}');
                text = text.replace(/\*/gi,'\\*');
                text = text.replace(/\./gi,'\\.');
                text = text.replace(/\?/gi,'\\?');
                text = text.replace(/\+/gi,'\\+');
                text = text.replace(/%/gi, '[%]');
                SearchText = text;                        
                lastAutoCompletionText = text;
             }
        } 
    }

}

function OnAutoSearchCompleted(executor, eventArgs)
{
    var resultXml = executor.get_xml();
    var resultList = Sys.Serialization.JavaScriptSerializer.deserialize(resultXml.text);
//    var resultList = resultXml;
    
    if(resultList.length)
    {
        SetPosition('txtQuery','divAutoCompletion');
        for(var i = 0; i < resultList.length; i++)
        {
            var info = resultList[i]; 
            var tr =   tabAutoCompletion.insertRow(); 
            tr.info = info;
            tr.className = "AutoCompletionItem_unselected";  
             
            tr.onmouseover = function(){activeAutoCompletionItem(this);};
            tr.onclick = function(){selectAutoCompletionItem(this);};
            
            var keywordRegExp = new RegExp(SearchText, "i");
            var td = tr.insertCell(); 
            td.innerHTML = "<div class='AutoCompletionItem_text'>&nbsp;&nbsp;&nbsp;" + ((info.FullText).replace(keywordRegExp, "<font class='AutoCompletionItem_keyword'>$&</font>")) + "</div>"; 
            tr.appendChild(td);
            
            td =  tr.insertCell(); 
            td.innerHTML = "<div class='AutoCompletionItem_description'> -- " + ((info.Description).replace(keywordRegExp, "<font class='AutoCompletionItem_keyword'>$&</font>")) + "</div>"; 
            tr.appendChild(td);
          
            //tabAutoCompletion.appendChild(tr);
        }
        
        document.getElementById('divAutoCompletion').style.display='';
        document.getElementById('divAutoCompletion').style.visibility='visible';    
    }
}

/*************栏目显示-begin --add by fengxu 2011-02-14*************/
function chooseProgRingList(obj)
{
    var objContainer = $get('rankingContent');
    var objRankingBar = $get('rankingBar');
    for(var i= 0;i<objRankingBar.parentElement.children.length;i++)
    {
        objRankingBar.children[i].className="rankingUnChoosed";
    }
    obj.className="rankingChoosed indexBackGround sprite-btn_ranking"; 
    for(var i= 0;i<objContainer.children.length;i++)
    {
        objContainer.children[i].style.display='none';
    }
    $get('tableRingRanking_'+obj.progcode).style.display='block';
}

function RingTopicTabOnMouseOver(obj,controlId)
{
    var objContainer = obj.parentElement;
    var progcode = obj.id.split('$');
    for(var i=0;i<objContainer.children.length;i++)
    {
        if(-1 != objContainer.children[i].id.indexOf('$subtitles$'))
        {
            objContainer.children[i].className='tabGray indexBackGround tab_orange sprite-tab_gray';
            $get(controlId+'$'+objContainer.children[i].id.split('$')[2]).style.display='none';
        }
    }
    obj.className='tabOrange indexBackGround tab_orange sprite-tab_orange';
    $get(controlId+'$'+progcode[2]).style.display='block';
}

function RingTopicSelectAll(controlId)
{
    var objContainer = $get(controlId);
    for(var i=0;i<objContainer.children.length;i++)
    {
        if(objContainer.children[i].style.display == 'block')
        {
            collInputs = objContainer.children[i].getElementsByTagName('INPUT');
            for(var j=0;j<collInputs.length;j++)
            {
                collInputs[j].checked = true;
            }
            break;
        }
    }
}

function RingTopicInvertSelect(controlId)
{
    var objContainer = $get(controlId);
    for(var i=0;i<objContainer.children.length;i++)
    {
        if(objContainer.children[i].style.display == 'block')
        {
            collInputs = objContainer.children[i].getElementsByTagName('INPUT');
            for(var j=0;j<collInputs.length;j++)
            {
                if(collInputs[j].checked == true)
                    collInputs[j].checked = false;
                else
                    collInputs[j].checked = true;
            }
            break;
        }
    }
}

function RingTopicPlay(controlId)
{
    var queryString = "";
    var regdouhao=/,/g;

    var objContainer = $get(controlId);
    for(var i=0;i<objContainer.children.length;i++)
    {
        if(objContainer.children[i].style.display == 'block')
        {
            collInputs = objContainer.children[i].getElementsByTagName('INPUT');
            for(var j=0;j<collInputs.length;j++)
            {
                if(collInputs[j].checked == true)
                {
                    if((queryString.length+escape(collInputs[j].ringinfo.replace(regdouhao,"，")).length)>1024)//如果url长度大于1024则不添加
                        break;
                    if(queryString.length) queryString += ",";
                    queryString += escape(collInputs[j].ringinfo.replace(regdouhao,"，"));
                }
            }
            break;
        }
    }
    if(""==queryString)
    {
        alert("请先选择要播放的铃音");
        return;
    }
    showPlayerMulti(queryString, this.ActiveProgCode);
}

function RingTopicShowMore(controlId)
{
    var objContainer = $get(controlId);
    for(var i=0;i<objContainer.children.length;i++)
    {
        if(objContainer.children[i].style.display == 'block')
        {
            var progcode = objContainer.children[i].id.split('$');
            window.parent.location.href =  "ProgResourceList.aspx?progcode=" + progcode[1];
            return;
        }
    }
}
function RingBoxTopicShowMore(controlId)
{
    var objContainer = $get(controlId);
    for(var i=0;i<objContainer.children.length;i++)
    {
        if(objContainer.children[i].style.display == 'block')
        {
            var progcode = objContainer.children[i].id.split('$');
            window.parent.location.href =  "RingBoxList.aspx?progcode="+  progcode[1];
            return;
        }
    }
}

function RingRankingShowMoreRing()
{
    var objContainer = $get('rankingContent');
    for(var i=0;i<objContainer.children.length;i++)
    {
        if(objContainer.children[i].style.display == 'block')
        {
            var progcode = objContainer.children[i].id.split('_');
            location.href="ProgResourceList.aspx?progCode="+progcode[1];
            return;
        }
    }
}

function RingRankingPlayAll()
{
    var queryString = "";
    var regdouhao=/,/g;
    var objContainer = $get('rankingContent');


    for(var i=0;i<objContainer.children.length;i++)
    {
        if(objContainer.children[i].style.display == 'block')
        {
            collInputs = objContainer.children[i].getElementsByTagName('INPUT');
            for(var j=0;j<collInputs.length;j++)
            {
                if((queryString.length+escape(collInputs[j].value.replace(regdouhao,"，")).length)>1024)//如果url长度大于1024则不添加
                    break;
                if(queryString.length) queryString += ",";
                queryString += escape(collInputs[j].value.replace(regdouhao,"，"));
            }
            break;
        }
    }
    showPlayerMulti(queryString, this.ActiveProgCode);
}
/************栏目显示-end --add by fengxu 2011-02-14*************/

function closeAutoCompletion()
{
    clearAutoCompletionList();
    document.getElementById('divAutoCompletion').style.display="";
    document.getElementById('divAutoCompletion').style.visibility='hidden';
}

var timerDelayCloseAutoCompletion = null;
function delayCloseAutoCompletion()
{
    cancelDelayCloseAutoCompletion();
    timerDelayCloseAutoCompletion = setTimeout( closeAutoCompletion,  2000 ); 
}

function cancelDelayCloseAutoCompletion()
{
    if(timerDelayCloseAutoCompletion)
    {
        clearTimeout(timerDelayCloseAutoCompletion);
    }
}

function query()
{
    var txtQuery = document.getElementById('txtQuery');
//    txtQuery.value = encodeURIComponent(txtQuery.value);//.replace(/\+/g, '%2B');
    txtQuery.value=txtQuery.value.replace(/</gi, '(');
    txtQuery.value=txtQuery.value.replace(/>/gi, ')');
    var type = document.getElementById('hiddenSearchType').value;
    if(type ==0)
    {
        if(txtQuery.value=='请输入您要找的歌曲或歌手')
        {
            location.href = "search.aspx";
        }
        else
        { 
            location.href = "search.aspx?type=0&keyword=" + escape(encodeURIComponent(txtQuery.value).trim());
        }
    }
    else
    {
        if(txtQuery.value=='请输入您要找的铃音盒名称')
        {
            location.href = "RingBoxList.aspx?type=8";
        }
        else
        { 
            location.href = "RingBoxList.aspx?type=8&keyword=" + escape(encodeURIComponent(txtQuery.value).trim());
        }
    }
    closeAutoCompletion();

}

var timerAutoCompletion = null;
function autoCompletion_onkeyup(textbox, keyCode)
{ 
    switch(keyCode)
    {
        case 38:    //上
            activeAutoCompletionItemByOffset(-1);
            break;
        case 40:    //下
            activeAutoCompletionItemByOffset(1);
            break;
        case 13:    //回车
            document.forms[0].onsubmit = function(){return false;};
            if(currentActiveAutoCompletionItem)
            {
                selectAutoCompletionItem(currentActiveAutoCompletionItem);
            }
            else
            {
                document.getElementById('btnQuery').click(); 
            } 
            return false;
            //break;
        default:
            if(timerAutoCompletion)
            {
                window.clearTimeout(timerAutoCompletion);
            }
            var type = document.getElementById('hiddenSearchType').value;
            
            timerAutoCompletion = window.setTimeout(function(){ autoCompletion(textbox.value,type) }, 100);
            break;
    }
}


function SetPosition(objFrom,objToSet)
{
    var from = document.getElementById(objFrom);
    var toControl = document.getElementById(objToSet);
    
    toControl.style.position = 'absolute';
    var x = from.offsetLeft;
    var parent =from;
    while(parent =parent.offsetParent)
    {
        x = x+parent.offsetLeft;
    }
    toControl.style.left = x+'px';
}
