﻿    function GPV_OnPageLoad()
    {
        try
        {
          new RawSearchControl("");
        }
        catch(e)
        {
        }
        
    }
            
    var searchers = new Array();
    //default language is english so it remains empty
    function RawSearchControl() 
    {        
    }
    
    function SetNextPage(CurrSearcher,PageNumber)
    {
        try
        {
            var cursor = CurrSearcher.cursor;
            if(cursor.pages.length == 1)
            {
                sendToActionScript("No more records");
                return;
            }
            if(PageNumber <= 0)
            {
                CurrSearcher.gotoPage(0);
            }                
            else if (cursor && PageNumber < cursor.pages.length - 1) 
            {
                CurrSearcher.gotoPage(PageNumber);
            }
            else if (cursor && PageNumber == cursor.pages.length - 1)
            {
                CurrSearcher.gotoPage(cursor.pages.length - 1);
            }
            else if(cursor && PageNumber >= cursor.pages.length)
            {
                sendToActionScript("No more records");
            }
        }
        catch(e)
        {
        }
        
    }
    
    function SearchRequestProcessor(keywords,PageNumber)
    {
        try
        {
            SearchType = "video";
            var CurrSearcher = searchers[SearchType];
            if(CurrSearcher == null || CurrSearcher == undefined)
            {                        
                searcher = new GvideoSearch();
                searcher.setResultSetSize(GSearch.LARGE_RESULTSET);
                searcher.setNoHtmlGeneration();
                searcher.setSearchCompleteCallback(this,
                                                 RawSearchControl.prototype.searchCompleteVideo,
                                                 [searcher]
                                                 );

                CurrSearcher = searcher;
                CurrSearcher.execute(keywords);      
                searchers[SearchType] = CurrSearcher;              
            }
            else
            {
                SetNextPage(CurrSearcher,PageNumber - 1 );
            }            
        }
        catch(e)
        {
        }

    }

    
    var resultSearchers = new Array();
    var ResultIndex = new Array();
    RawSearchControl.prototype.searchCompleteVideo = function(searcher)
    {
        var activesearch = "video"; 
        if(searcher == null) return;
        
        // always clear old from the page
        if (!searcher.results || searcher.results.length == 0) 
        {
            resultSearchers[activesearch] = new Array();
            GetXMLResult(activesearch);
            return;
        }
        //save results
        resultSearchers[activesearch] = searcher.results;
        GetXMLResult(activesearch);
    }

    function GPV_GetResults(PageNumber)
    {
        //defensive
        Keywords = document.getElementById("query").value;
	    if(Keywords == null || Keywords.length == 0)
	    {
		    return;
	    }
	    try
	    {
		    parseInt(PageNumber);
	    }
	    catch(e)
	    {
		    PageNumber = 1;		
	    }
	    
        SearchRequestProcessor(Keywords,PageNumber)		    
    }
    
    function CaptializeString(str)
    {
        try
        {
            var a = str;
            var b = a.substring(0,1);
            var c = b.toUpperCase();
            var len = a.length;
            var d = a.substring(1,len);
            var e = c+d;
            return e;
	    }
	    catch(e)
	    {
	    }
            
    }
  
    function GetXMLResult(currentSearch)
    {
        try
        {
            var TypeCurrentSearch = "";
            var TitleCurrentSearch = "";
            if(currentSearch != null && currentSearch.length > 0)
            {
                TypeCurrentSearch = CaptializeString(currentSearch);
                TitleCurrentSearch = TypeCurrentSearch;
            }
            var sb = new Sys.StringBuilder();

            var CurrentPage = -1;
            if(searchers[currentSearch].length == 0 || searchers[currentSearch].cursor !=  null)
            {
                CurrentPage = (searchers[currentSearch].cursor.currentPageIndex + 1);
            }
            var Keywords = document.getElementById("query").value;

	        sb.append('<?xml version="1.0" encoding="utf-8" ?>');
	        sb.append('<gpv.com><CurrentKeywords><![CDATA[');
	        sb.append(Keywords);
	        sb.append(']]></CurrentKeywords>');
	        sb.append('<SearchResults>');
            var results = resultSearchers[currentSearch];
            sb.append('<VideoResults Type="' + TypeCurrentSearch + '" PageNumber="' + CurrentPage + '" NumberOfFindings="' + results.length + '" Title="Videos" Description="Findings from video-sharing sites">');
            if(0 == results.length)
            {
                document.getElementById("VideosFlash").style.display = "none";
            }
            for(i=0;i<results.length;i++)
            {
                var result = results[i];
                sb.append('<VideoResult FindingOrder="' + i + '">');
                sb.append('<Data>');
                sb.append('<URL><![CDATA['+result.url+']]></URL>');
                sb.append('      <PlayURL><![CDATA['+result.playUrl +']]></PlayURL>');
                sb.append('      <Title><![CDATA[' + result.titleNoFormatting  + ']]></Title>');
                sb.append('      <Content><![CDATA[' + result.content  + ']]></Content>');
                sb.append('      <Published><![CDATA[' + result.published + ']]></Published>');
                sb.append('      <Publisher><![CDATA[' + result.publisher + ']]></Publisher>');
                sb.append('      <Duration><![CDATA[' + result.duration + ' sec]]></Duration>');
				try
				{
					sb.append('      <Rating><![CDATA[' + (Math.round(parseFloat(result.rating)*100)/100) + ']]></Rating>');
				}
				catch(e)
				{
					sb.append('      <Rating><![CDATA[-]]></Rating>');
				}
				if(result.viewCount == undefined)
				{
					sb.append('      <ViewCount><![CDATA[-]]></ViewCount>');
				}
				else
				{
					sb.append('      <ViewCount><![CDATA[' + result.viewCount + ']]></ViewCount>');
				}
                sb.append('      <Tumbnail Width="' + result.tbWidth + '" Heigth="' + result.tbHeight + '"><![CDATA[' + result.tbUrl + ']]></Tumbnail>');
                sb.append('    </Data>');
                sb.append('    <Display></Display>');
                sb.append('    <Behavior>');
                sb.append('      <PopupMenu>');
                sb.append('        <OpenHere>1</OpenHere>');
                sb.append('        <OpenInNewTab>1</OpenInNewTab>');
                sb.append('        <OpenInNewWindow>1</OpenInNewWindow>');
                sb.append('        <OpenInPreview>0</OpenInPreview>');
                sb.append('      </PopupMenu>');
                sb.append('    </Behavior>');
                sb.append('</VideoResult>');

            }
            sb.append('</VideoResults>');
	        sb.append('  </SearchResults></gpv.com>');
    	    sendToActionScript(sb.toString());
	    }
	    catch(e)
	    {
	    }

    }

    function thisMovie(movieName) 
    {
        if (navigator.appName.indexOf("Microsoft") != -1) 
        {
             return window[movieName];
        } 
        else 
        {
             return document[movieName];
        }
    }

    function sendToActionScript(value) 
    {
        try
        {
            thisMovie("videos").sendToActionScript(value);
	    }
	    catch(e)
	    {
	    }            
    }

   function GPV_Navigate(A,B)
    {
        try
        {   
            var Mid = document.body.clientWidth/3;
            document.getElementById("floatingPlayerBox_Wrapper").style.left = Mid+"px"; 
            document.getElementById("floatingPlayer_Wrapper").style.left = (Mid+10)+"px"; 
            document.getElementById("floatingPlayerBox_Wrapper").style.display = "block"; 
            document.getElementById("floatingPlayer_Wrapper").style.display = "block";         
            document.getElementById("player_gsvb_url").innerHTML = '<embed class="player_gsvb" src="'+A+'" type="application/x-shockwave-flash" type="application/x-shockwave-flash" bgcolor="#000000"/>';
            document.getElementById("title_gsvb").innerHTML = B;
        }
        catch(e)
        {
        }
                
    }

    function GPV_HideFloatingPlayer()
    {
        try
        {   
            document.getElementById("floatingPlayerBox_Wrapper").style.display = "none"; 
            document.getElementById("floatingPlayer_Wrapper").style.display = "none"; 
            document.getElementById("player_gsvb_url").innerHTML = "";
       
        }
        catch(e)
        {
        }
    
    }

     function RemovePageTitle()
     {
        try
        {
            var sTitle = document.title;
            if(sTitle.indexOf("#") > -1 )
                sTitle = sTitle.substring(0,sTitle.indexOf("#"));
           document.title = sTitle;     
        }
        catch(e)
        {
        }
     
     }

