var advanceSearchParams = '';
function submitAdvanceSearch()
{
    var f = $('advanceSearchForm');
    if(validation(f)) {    
        $('advanceSearchAB_result').update('Searching....Please wait.');
        var url = "/en/services/AdvanceSearch_AB.html";
        var params = f.serialize();
        advanceSearchParams = params;
        var myAjax = new Ajax.Request(
	    url, 
	    {
		    method: 'post',
	        parameters: params,
		    onComplete: showAdvanceSearchResult
	    });	
    }
    return false;
}

function changeAVSDate(value) {
    var today = new Date();
    var oneMinute = 60 * 1000  // milliseconds in a minute
     var oneHour = oneMinute * 60
     var oneDay = oneHour * 24
     var oneWeek = oneDay * 7

     $('mDateTo').value = today.getMonth() + 1;
     $('dDateTo').value = today.getDate();
     $('ydateTo').value = today.getFullYear();
    switch (value) {
        case 1: today = new Date(today.getTime() - oneDay);
            break;
        case 7: today = new Date(today.getTime() - oneWeek);
            break;
        case 30: today = new Date(today.getTime() - oneDay * 30);
            break;
        case 90: today = new Date(today.getTime() - oneDay * 90);
            break;
        case 365: today = new Date(today.getTime() - oneDay * 365);
            break;
        default:
            today = new Date('1/1/' + value);
            break;
    }
    $('mDateFrom').value = today.getMonth() + 1;
    $('dDateFrom').value = today.getDate();
    $('ydateFrom').value = today.getFullYear();
 }

function boldify(m){
    //return '<span class=" highlighted">'+m+'</span>';
    return '<span class=" highlighted">'+m+'</span>';
}

function stringToRegExp(pattern, flags){
    return new RegExp(
        pattern.replace(/[\[\]\\{}()+*?.$^|]/g, function(m){return '\\'+m;}),
        flags);
}

function showAdvanceSearchResult(result)
{
    try
    {
        var tempText = result.responseText.gsub(/\s/,' ');
        var response=('/*-secure-\n'+tempText+'\n*/').evalJSON();
        var newsHtml = '';
        
        var tempObject = {};
        var tokens = advanceSearchParams.split('&');
        var searchWords = "";
        var author = "";
        var headline1 = "";
        var headline2 = "";
        tokens.each(
            function(data, index) {
                data = data.split('=');
                var id = decodeURIComponent(data[0]);
                var value = decodeURIComponent(data[1]);
                if(id == 'searchWords' )searchWords = value;
                if(id == 'author' )author = value;
                if(id == 'headline1')headline1 = value;
                if(id == 'headline2')headline2 = value;
            }
        );
        var headlinePattern = searchWords;
        if(headlinePattern != "" && headline1 != "")headlinePattern += "|";
        headlinePattern += headline1;
        if(headlinePattern != "" && headline2 != "")headlinePattern += "|";
        headlinePattern += headline2;
        var headlinePattern = new RegExp(headlinePattern,"gi");
        response.news.each(function(n)
        {
            if(headlinePattern != "")n.Headline = n.Headline.replace(headlinePattern, boldify);
            if(searchWords != "")n.LeadIN = n.LeadIN.replace(stringToRegExp(searchWords, 'gi'), boldify);
            if(author != "")n.Reporter = n.Reporter.replace(stringToRegExp(author, 'gi'), boldify);
            if(n.photo != "") newsHtml += templates.AdvanceSeacrhNewswithPhoto.evaluate(n);
            else newsHtml += templates.AdvanceSeacrhNews.evaluate(n);
        });
        if(response.totalNews != 0)
        {
            var pageHtml = '';
            var tempObj = {}
            for(response.pageFrom; response.pageFrom <= response.pageTo ; response.pageFrom ++)
            {
                tempObj.page = response.pageFrom
                if(tempObj.page == response.currentPage)pageHtml += templates.AdvanceSeacrhCurrentPage.evaluate(tempObj);
                else pageHtml += templates.AdvanceSeacrhPage.evaluate(tempObj);
            }
            tempObj.pageHtml = pageHtml;
            tempObj.previous = 'notShow';
            tempObj.next = 'notShow';
            if(response.currentPage != 1)
            {
                tempObj.previous = 'show';
                tempObj.previousPage = response.currentPage -1;
            }
            if(response.currentPage != response.totalPage)
            {
                tempObj.next = 'show';
                tempObj.nextPage = response.currentPage +1;
            }
            
            pageHtml = templates.AdvanceSeacrhPagesBlock.evaluate(tempObj);
            response.pageHtml = pageHtml;
        }
        response.newsHtml = newsHtml;
        $('advanceSearchAB_result').update(templates.AdvanceSeacrhTotalRecord.evaluate(response));
        $('advanceSearchAB_result').scrollTo();
    }catch(e){alert(e)}
}

function changeASPage(page)
{
     var f = $('advanceSearchForm');
    if(validation(f)) {    
        $('advanceSearchAB_result').update('Searching....Please wait.');
        var url = "/en/services/AdvanceSearch_AB.html";
        var params = advanceSearchParams + "&currentPageNo="+page;
        var myAjax = new Ajax.Request(
	    url, 
	    {
		    method: 'post',
	        parameters: params,
		    onComplete: showAdvanceSearchResult
	    });
    }
    return false;
}