function checkKey(evt) 
{
        var keycode = (evt.which) ? evt.which : evt.keyCode;
        if (keycode == 13) {
                return invokeSearch("cts_dd");
        }
        else
                return true;
}

function checkSearchKeywordLength(){		
		var str = document.getElementById("keywordText").value;
	//	var len = str.trim().length;
		if(str.length < 3){
			alert("Please enter atleast 3 characters in search.");
			return false;
		}
		invokeSearch();
	}

function invokeSearch(){
        var keyw = $("keywordText").value;
        addUpdateParameter("q",keyw);
        addUpdateParameter("pn",1);
        var saction = document.forms['searchResultForm'].action;
        if(saction.indexOf('category.jsp') != -1 ){
                saction = saction.substring(0,saction.indexOf('category.jsp'))+'search.jsp';
                document.forms['searchResultForm'].action = saction;
        }
        document.forms['searchResultForm'].submit();
}
/*
function narrowSearch (){
        addUpdateParameter("pn",1);
        return doSubmitSearchForm();
}

*/


function doSubmitSearchForm()
{
        addOrUpdateCheckBox('sid');
        addOrUpdateCheckBox('bnm');
        addOrUpdateCheckBox('cnm');
        addOrUpdateCheckBox('dcty');
        addOrUpdateCheckBox('atmSize');
        addOrUpdateCheckBox('color');
        addUpdateKeywords();
        var isValid = checkvalue();

        if(isValid){
                var prcVal = getPrice();
                addUpdateParameter('prc',prcVal);
                addUpdateParameter("categoryID",getURLParameter("categoryID"));
                addUpdateParameter("catalogueID",getURLParameter("catalogueID"));
                addUpdateParameter("parentCategoryID",getURLParameter("parentCategoryID"));
                var saction = document.forms['searchResultForm'].action;
                /*
                if(saction.indexOf('category.jsp') != -1 ){
                        saction = saction.substring(0,saction.indexOf('category.jsp'))+'search.jsp';
                        document.forms['searchResultForm'].action = saction;
                }
                */
                document.forms['searchResultForm'].submit();
        }
        if(!isValid){
                return false;

        }
        return false;
}
function addUpdateKeywords(){
        var value = null;
        for(var j = 1 ;j < 13 ;j++){
                value = getKeywordValue("_k"+j);
                if(value.length > 0){
                        addUpdateParameter("k"+j,value);
                }
                else{
                        removeParameter("k"+j);
                }
        }
}



function getKeywordValue(keyword){

        var elements = document.getElementsByName(keyword);
        for(var i= 0 ; i < elements.length ; i++){
                var obj = elements[i]
                if(obj.type=='radio' && obj.checked){
                                return obj.value;
                }
                else if(obj.type=='text' && obj.value.length > 0){
                                return obj.value;
                }
        }

        return "";
}

function addOrUpdateCheckBox(nm){
        var els =  document.getElementsByName(nm+"Box");
        var value = "";
        if(els && els != null && els != "undefined"){
                value = "";
        for(var i=0 ; i < els.length; i++)
                {
                        if(els[i].checked)
                                value  += els[i].value +',';
                }
                value = value.substring(0,value.lastIndexOf(','));
        }
        if(value.length > 0)
                addUpdateParameter(nm,value);
        else
                removeParameter(nm);
}

function removeParameter(id){
        var obj = $(id);

        if(obj != null && obj != 'undefined'){
                try{
                $('searchResultForm').removeChild(obj);
                }catch(err){}
        }
}
/** This is for test remove in production*/
function addParameter(id , val){
        alert(document.forms['searchResultForm'].elements.length);
        var obj = $(id);
        if(obj != null && obj != 'undefined'){
                obj.value = val;
        }
        else{
                var input = document.createElement('input');
                input.type='hidden';
                input.name=id;
                input.id=id;
                input.value = val;
                $('searchResultForm').appendChild(input);
        }
        alert(document.forms['searchResultForm'].elements.length);
}
/**
This Function will update the parameter
if already exist otherwise add it.
*/

function addUpdateParameter(id , val){
        //alert(document.forms['searchResultForm'].elements.length);
        var obj = $(id);
        if(obj != null && obj != 'undefined'){
                obj.value = val;
        }
        else{
                var input = document.createElement('input');
                input.type='hidden';
                input.name=id;
                input.id=id;
                input.value = val;
                $('searchResultForm').appendChild(input);
        }
        //alert(document.forms['searchResultForm'].elements.length);
}

/* This will return firmatted price*/
function getPrice()
{
        var priceRange = "";
        var startPrice = $("startPrice").value;
        var endPrice = $("endPrice").value;

        if(endPrice !="" && startPrice !="")
        {
                priceRange=startPrice+"-"+endPrice;
        }
        else if (startPrice != "" && endPrice == "" )
        {
                priceRange=startPrice+"-"+99999999;
        }
        else if (endPrice != "" && startPrice == "")
        {
                priceRange="0"+"-"+endPrice;
        }
        else
                priceRange="";

        return priceRange;
}
function checkvalue()
{
        var minPrice = "0";
        var maxPrice = "99999999" ;
        minPrice = $("startPrice").value;
        maxPrice = $("endPrice").value;
        if( maxPrice/minPrice<1){
                alert(i18n("Second_price_value_should_be_greater_than_first_one."));
                return false;
        }
        return true;
}

function checkboxValidation(obj,nm){
        var els = document.getElementsByName(nm);
        var _defIndx = -1;
        if(obj.checked && obj.value.length ==0 ){
                for(var i=0 ; i < els.length; i++)
                        els[i].checked = false;
                obj.checked = true;
        }
        else
        {
                var value ="";
                for(var i=0 ; i < els.length; i++)
                {
                        var el = els[i];
                        //alert(el.checked);
                        if(el.checked && el.value.length == 0){
                                els[i].checked = false;
                        }
                        else{
                                if(els[i].checked)
                                        value  += els[i].value +',';
                        }
                }//for closed
                //value = value.substring(0,value.lastIndexOf(','));
        }
}

//Added by  for java script validation in Start and end range
function checkKeys(evt)
{
 var charCode = (evt.which) ? evt.which : evt.keyCode;
 if (charCode > 31 && (charCode < 48 || charCode > 57))
    return false;
 return true;
}


/* Show & hide the narrow search option */
function showOpts(obj,id) {
        $(obj).style.display =
                ($(obj).style.display=='block') ? 'none':'block';
        swapImage(id);
}
/* This will change the = & - image*/
function swapImage(componentId)
{
        var obj = $(componentId);
        if(obj != null && obj != "undefined")
        {
                var imgSrc = obj.src;
                var lstIndx = imgSrc.lastIndexOf('/');
                var startSrc = imgSrc.substring(0,lstIndx);
                var lastSrc = imgSrc.substring(lstIndx+1);
                var imgUrl;
                if(lastSrc.indexOf('plus.png')!= -1)
                        imgUrl = 'minus.png'
                else
                        imgUrl = 'plus.png'

                obj.src =startSrc + '/' +imgUrl;
        }
}

function changeView(id,val){
        addUpdateParameter(id, val);
        if(id == 'sort')
                addUpdateParameter('pn', 1);
        document.forms['searchResultForm'].submit();
}

function doAjaxSearch(id , val)
{
alert("doAjaxSearch");
        addUpdateParameter(id , val);
        return doSubmitSearchForm();
}
/** 
        Code for compare products Start
*/
var selected = new Array();
var c = 0;
function showCount(){
        alert(selected.length);
}
function compareProduct(){
        var prod_id = "";
        if(c < 2 || c > 7)
                alert(i18n("Please_select_minimum_2_or_maximum_7_prodcuts_to_compare."));
        else{
                var prod_id = selected.join("x");
        }
         
}

function getSelectedProduct(){
        var prod_id = "";
        if(selected.length > 0)
                var prod_id = selected.join("x");

        return prod_id;
}

function addRemoveProduct(chk_obj){
        if(chk_obj.checked)
                selected[c++] = chk_obj.value;
        else
                removeFromArray(chk_obj);
}
function removeFromArray(chk_obj){
        for(var i=0; i < selected.length ; i++){
                if(selected[i] == chk_obj.value)
                {
                        selected.splice(i,1);
                        c--;
                }
        }
}

function getURLParameter(paramName)
{
//alert('getURLParameter');
// get the current URL
 var url = window.location.toString();
 //get the parameters
 url.match(/\?(.+)$/);
 var params = RegExp.$1;
 // split up the query string and store in an
 // associative array
 var params = params.split("&");
 var queryStringList = {};
 
 for(var i=0;i<params.length;i++)
 {
     var tmp = params[i].split("=");
     queryStringList[tmp[0]] = unescape(tmp[1]);
 }

 pvalue = queryStringList[paramName];
 if(typeof pvalue != 'undefined' && pvalue != null ){
        return pvalue;
 }else {
        return "";
 }
 // print all querystring in key value pairs
 //for(var i in queryStringList)
 //    document.write(i+" = "+queryStringList[i]+"<br/>");

}
/** 
        Code for compare products End
*/



var cur = -1;
var old = 0;
var lastIndexOfSuggestionList = 9;
function getTextSearchList(text,oEvent)
	{
		if(oEvent.keyCode != 40 && oEvent.keyCode != 38)
		{
			cur = -1;		
			try
			{
				if(text.length > 3)	
				{
					
					var url = path + "/faces/tiles/components/searchComponent.jsp";
					var params = null;			
					params =  {'invoke:action': 'SearchResultActionBean.performTextSearch', 'txt':text};				
					
					var myAjax = new Ajax.Updater(
						'searchResultDiv', 
						url, 
						{
							method: 'GET', 
							parameters: params					
						});	
				}
			}
			catch(exception){
				alert(exception.message);
			}
		}
		
	}

function addText(index)
	{	
		document.getElementById('keywordText').value = document.getElementById('index'+index).innerHTML;
		document.getElementById('serachSuggessionList').style.display = 'none';	
	}

function handleKeyDown (text,oEvent,strListSize)
		{
		
		if(text.length > 3)
			{
			//alert(strListSize);
				if(strListSize != "")
				{
					var intListSize = parseInt(strListSize);
					if(intListSize < 9){
						lastIndexOfSuggestionList = intListSize;}
				}
			
			
				 switch(oEvent.keyCode) 
				 {
				case 38: //up arrow
					if(cur > 0)
					 {
						cur = cur - 1 ;
						old = cur + 1;
					 }
					 else
					 {
						cur = lastIndexOfSuggestionList;
						old = 0;
					 }
					setFocus();				
					break;
				case 40: //down arrow
					if(cur == lastIndexOfSuggestionList)
					 {
						cur = 0;
						old = lastIndexOfSuggestionList;
					 }
					 else
					 {
						cur = cur + 1 ;
						old = cur - 1;
					 }
					setFocus();					
					break;		   
				}
			}
			
		}

function setFocus() 
	  {
		  if(document.getElementById('index'+cur) != null)
		  {
			document.getElementById('index'+cur).focus();
			document.getElementById('index'+cur).style.background = 'red'; 
			document.getElementById('keywordText').value = document.getElementById('index'+cur).innerHTML;
		  }
             
		  if(document.getElementById('index'+old) != null)
		  {
			 document.getElementById('index'+old).style.background = 'white';  
		  }
			
			
      }

