﻿
function _spBodyOnLoadWrapper(){};
function WPSC()
{
    function Init(a){return}
    this.Init = Init;
    this.WebPartPage = new WebPartPage();
    
    function WebPartPage()
    {
        this.Parts = new Parts();
        function Parts()    
        {
            this.Register = dummy;
            function dummy(a,b){return;}
        }
    }
}
WPSC = new WPSC();

function IsKeyDownSubmit(event)
{
    if (event !=null)
    {
        var charCode;
        var bKeyModifiers;
        if (document.all)
        {
            charCode=event.keyCode;
            bKeyModifiers=event.altKey || event.ctrlKey;
        }
        else
        {
            charCode=event.which;
            bKeyModifiers=event.modifers &
                           (event.ALT_MASK | event.CONTROL_MASK);
        }
        if ((charCode==13) && !bKeyModifiers)
            return true;
    }
    return false;
}

function SearchKeyDown(event, strUrl)
{
    if (IsKeyDownSubmit(event))
    {
        SubmitSearchRedirect(strUrl);
        return false;
    }
    return true;
}

var UTF8_1ST_OF_2=0xc0   ;
var UTF8_1ST_OF_3=0xe0   ;
var UTF8_1ST_OF_4=0xf0   ;
var UTF8_TRAIL=0x80   ;
var HIGH_SURROGATE_BITS=0xD800 ;
var LOW_SURROGATE_BITS=0xDC00 ;
var SURROGATE_6_BIT=0xFC00 ;
var SURROGATE_ID_BITS=0xF800 ;
var SURROGATE_OFFSET=0x10000;
function escapeProperlyCoreCore(str, bAsUrl, bForFilterQuery, bForCallback)
{
    var strOut="";
    var strByte="";
    var ix=0;
    var strEscaped=" \"%<>\'&";
    if (typeof(str)=="undefined")
        return "";
    for (ix=0; ix < str.length; ix++)
    {
        var charCode=str.charCodeAt(ix);
        var curChar=str.charAt(ix);
        if(bAsUrl && (curChar=='#' || curChar=='?') )
        {
            strOut+=str.substr(ix);
            break;
        }
        if (bForFilterQuery && curChar=='&')
        {
            strOut+=curChar;
            continue;
        }
        if (charCode <=0x7f)
        {
            if (bForCallback)
            {
                strOut+=curChar;
            }
            else
            {
                if ( (charCode >=97 && charCode <=122) ||
                     (charCode >=65 && charCode <=90) ||
                     (charCode >=48 && charCode <=57) ||
                     (bAsUrl && (charCode >=32 && charCode <=95) && strEscaped.indexOf(curChar) < 0))
                {
                    strOut+=curChar;
                }
                else if (charCode <=0x0f)
                {
                    strOut+="%0"+charCode.toString(16).toUpperCase();
                }
                else if (charCode <=0x7f)
                {
                    strOut+="%"+charCode.toString(16).toUpperCase();
                }
            }
        }
        else if (charCode <=0x07ff)
        {
            strByte=UTF8_1ST_OF_2 | (charCode >> 6);
            strOut+="%"+strByte.toString(16).toUpperCase() ;
            strByte=UTF8_TRAIL | (charCode & 0x003f);
            strOut+="%"+strByte.toString(16).toUpperCase();
        }
        else if ((charCode & SURROGATE_6_BIT) !=HIGH_SURROGATE_BITS)
        {
            strByte=UTF8_1ST_OF_3 | (charCode >> 12);
            strOut+="%"+strByte.toString(16).toUpperCase();
            strByte=UTF8_TRAIL | ((charCode & 0x0fc0) >> 6);
            strOut+="%"+strByte.toString(16).toUpperCase();
            strByte=UTF8_TRAIL | (charCode & 0x003f);
            strOut+="%"+strByte.toString(16).toUpperCase();
        }
        else if (ix < str.length - 1)
        {
            var charCode=(charCode & 0x03FF) << 10;
            ix++;
            var nextCharCode=str.charCodeAt(ix);
            charCode |=nextCharCode & 0x03FF;
            charCode+=SURROGATE_OFFSET;
            strByte=UTF8_1ST_OF_4 | (charCode >> 18);
            strOut+="%"+strByte.toString(16).toUpperCase();
            strByte=UTF8_TRAIL | ((charCode & 0x3f000) >> 12);
            strOut+="%"+strByte.toString(16).toUpperCase();
            strByte=UTF8_TRAIL | ((charCode & 0x0fc0) >> 6);
            strOut+="%"+strByte.toString(16).toUpperCase();
            strByte=UTF8_TRAIL | (charCode & 0x003f);
            strOut+="%"+strByte.toString(16).toUpperCase();
        }
    }
    return strOut;
}
function escapeProperly(str)
{
    return escapeProperlyCoreCore(str, false, false, false);
}


function SubmitSearchRedirect(strUrl)
{
    var frm=document.forms["frmSiteSearch"];
    if (frm==null)
    {
        if (typeof(MSOWebPartPageFormName) !="undefined")
            frm=document.forms[MSOWebPartPageFormName];
    }
    if (frm !=null)
    {
        var searchText=frm.elements["SearchString"].value;
        strUrl=strUrl+"?k="+escapeProperly(searchText);
        var searchScope=frm.elements["SearchScope"];
        if (searchScope !=null)
        {
            var searchScopeUrl=searchScope.value;
            if (searchScopeUrl)
            {
                strUrl=strUrl+"&u="+escapeProperly(searchScopeUrl);
            }
        }
        frm.action=strUrl;
        frm.submit();
    }
}