/* Javascript to check special characters in a string */
function ValidString(stringToValidate) 
{
    var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?~_";
    for (var i = 0; i < stringToValidate.length; i++) 
    {
        if (iChars.indexOf(stringToValidate.charAt(i)) != -1) {
            alert("Your search keyword(s) has special characters. \nThese are not allowed.");
            return false;
        }
    }
    return true;
}

/* Javascript function called by GO! button from Master Page*/
function CustomSubmitSearch()
{

    var searchText = window.document.getElementById("searchInput").value;
    var currentUrl = window.location.toString();
    var lastLocation = currentUrl.indexOf('/',9);
    var searchUrl = currentUrl.substring(0,lastLocation);

    if (ValidString(searchText) == true) 
    {
        window.location = searchUrl + '/Pages/CustomSearch.aspx?k=' + searchText;
    }

}

/* Javascript function called by CEWP to display Search Keyword*/
function HeaderLabel()
{
    var test = window.location.search.substring(1);
    if (test != null & test != '')
    {
        var searchQuery = GetQueryString('k');
        if (searchQuery != null & searchQuery!='')
        {
       	    header.innerHTML = '<h1>Search Results for "' + searchQuery +'"</h1>';

            /* window.document.getElementById("searchInput").value = searchQuery; */
        }
    }
}

function GetQueryString(search)
{
    var query = window.location.search.substring(1);
    var queries = query.split('&');
    
    for (var i = 0; i < queries.length; i++)
    {
        var itemQuery = queries[i];
        var splitted = itemQuery .split('=');
        if(splitted[0] == search)
        {   
            return URLDecode(splitted[1]);
        }
        
    }
}

function URLDecode(query)
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   var encoded = query;
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	} // while
   
   return plaintext;
};

