﻿
// JScript File
/// ################# BlogHilight.js #############################

var colors=["#DEB887","#B0EDEE","#FEE4C3","#87CEFA","#DDA0DC","#FED700","#ADFF30","#00BFFE","#FF69B3","#FF7F50","#9ACD32","#B8860B","#FF00FE","#7EFFD4","#8EBC8B","#32CD33","#AED8E6","#6594EC","#609DA0","#BDB76B","#F0E78C","#01CED1","#FF4500","#9AFA98","#D3691F","#DCDCDC","#FFB6C1","#778898","#9470DC","#FFA500","#DC7092","#BC8E8E","#FA8071","#D1B48C","#FAEBD6"];
var CatchJSErrors = true;
var colorcount;
function SearchHiLite(text,searchText)
{
    var SearchAsSubstring = 0;
	var term  = searchText.split("|");
    // convert terms in regexp patterns
    //alert(text);
    for (var i=0;i<term.length;i++) // take each term in turn
    {       
		if(term[i] != "")
        {                   
            if (term[i].indexOf("\"") != -1)
            {
                // contains double quotes               
                term[i]=term[i].replace(/\"/g,"");
                term[i]=term[i].replace(/\+/g," "); 
            }
            else
            {
                term[i]=term[i].replace(/\+/g,"");  
            }                           

            if (term[i].indexOf("*") != -1 || term[i].indexOf("?") != -1)
            {
                // convert wildcard pattern to regexp
                term[i] = term[i].replace(/\\/g, " ");
                term[i] = term[i].replace(/\^/g, " ");
                //term[i] = term[i].replace(/\+/g, " "); // split on this so no point in looking
                term[i] = term[i].replace(/\#/g, " ");
                term[i] = term[i].replace(/\$/g, " ");
               term[i] = term[i].replace(/\./g, " ");
                 // check if search term only contains only wildcards
                // if so, we will not attempt to highlight this term
                var wildcards = /\w/;
                if (wildcards.test(term[i]))
                {
                	term[i] = term[i].replace(/\*/g, "[^\\s]*");
                	term[i] = term[i].replace(/\?/g, "[^\\s]"); // insist upon one non whitespace
                }                
                else                
                	term[i] = "";                
            }
			
			if (term[i] != "")
			{
	            if (SearchAsSubstring == 0)
	            {
	                term[i] = "(>|>[^<]+[\\b\\W])("+term[i]+")(<|[\\b\\W][^>]*<)";
	            }
	            else
	            {
	                // if term leads with wildcard then allow it to match preceeding text in word
	                var strWB="";
	                if(term[i].substr(0,7)=="[^\\s]*") strWB="\\b";
	                term[i] = "(>|>[^<]+)"+strWB+"("+term[i]+")([^>]*<)";
	            }
	        }	        
        }
    }
    text=text.replace(/&amp;/ig, '&');
    text=text.replace(/&nbsp;/ig, '');
    for (var i=0;i<term.length;i++) // take each term in turn
    {
        if(term[i] != "")
        {        	        	
            var l = 0;
   		    re = new RegExp(term[i], "gi");
            var count = 0; // just incase
            text = ">" + text + "<"; // temporary tag marks
            do 
            {
                l=text.length; 
                text=text.replace(re, "$1<font style='color:white; background-color:DarkBlue;'>$2</font>$3");
                count++;
            }
            while(l!=text.length && count<100);
            text = text.substring(1, text.length-1); // remove temporary tags
        }
    }        
    text = text.replace(eval("//g"), '');        
    text = text.replace(eval("//g"), '&nbsp;');    
    txtArea.innerHTML=text;
}

function highlight(searchText)
{	
    //var x = txtArea.innerHTML;
    
    var x = txtArea.innerHTML;
    if (x)
    SearchHiLite(x,trim(searchText));
}
function highlightSearchTerms(searchText)
{
	 highlight(searchText);
}

function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} // Ends

//ContentRating.js //////////////////////

function ShowDefault(source, rating)
{

    var value = document.getElementById(source).getAttribute("value");
    var img_id = source.split(':');
    var elementArray = document.getElementsByTagName("img");
    for(var i = 0; i < elementArray.length; i++)
    {
	    var element = elementArray[i].getAttribute("id");				
	    if(element!=null)
	    {
		    var elementId = element.split(':');
		    if(elementId[0] == img_id[0])
		    {
			    if(elementArray[i].getAttribute("value") <= rating)
			    {														    
			        elementArray[i].src = "Blog/Images/star.png";								
			    }
			    else
			    {
			       elementArray[i].src = "Blog/Images/blankstar.png";	 
			    }
		    }								
	    }
    }					
}
	    
function Hover(source)
{			
    var value = document.getElementById(source).getAttribute("value");
    var img_id = source.split(':');
    var elementArray = document.getElementsByTagName("img");
    var count = 0;		
    for(var i = 0; i < elementArray.length; i++)
    {
	    var element = elementArray[i].getAttribute("id");
	    if(element!=null)
	    {
		    var elementId = element.split(':');
		    if(elementId[0] == img_id[0])
		    {
			    if(elementArray[i].getAttribute("value") > 0)
			    {
				    if((value-1) >= count)
				    {								   
				        elementArray[i].src = "Blog/Images/star.png";
				    }
				    else
			        {								    
				        elementArray[i].src = "Blog/Images/blankstar.png";
				    }
					
				    count = count + 1;
			    }
		    }
	    }
    }
}

function RaterClick(bid,rating)
{	        
//alert("ss");
    PageMethods.UpdateRating(bid, rating, OnSucceeded, OnFailed);	        
}

//function OnSucceeded(result)
//{
//}
//function OnFailed(result)
//{
//}




