Prototype.Browser.IE6 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6;
Prototype.Browser.IE7 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 7;
Prototype.Browser.IE8 = Prototype.Browser.IE && !Prototype.Browser.IE6 && !Prototype.Browser.IE7;

Varien.searchForm2 = Class.create();
    Varien.searchForm2.prototype = {
        initialize : function(form, field, emptyText,action1,action2){
            this.form   = $(form);
            this.field  = $(field);
            this.emptyText = emptyText;
            this.color = $('color');
            this.category_ids = $('cat');
            this.occasion=$('occasion');
            this.material=$('material');
            this.advancedAction=action1;
            this.quickAciton=action2;

            Event.observe(this.form,  'submit', this.submit.bind(this));
            Event.observe(this.field, 'focus', this.focus.bind(this));
            Event.observe(this.field, 'blur', this.blur.bind(this));
            this.blur();
        },

        submit : function(event){
            var criteria=0;
            if(this.field.value != this.emptyText && this.field.value != ''){
                criteria++;
            }
            if(this.color.value!=''){
                criteria++;
            }
            if(this.color.value!=''){
                criteria++;
            }
            if(this.material.value!=''){
                criteria++;
            }
            if(this.occasion.value!=''){
                criteria++;
            }
            if(this.category_ids.value!=''){
                criteria++;
            }            
            if (criteria<1){
                Event.stop(event);
                return false;
            }
            if (criteria==1 && (this.field.value!='' && this.field.value!=this.emptyText)){
               this.form.action = this.quickAciton;	
            }else{
               this.form.action = this.advancedAction;	
            }
            if(this.field.value==this.emptyText){
                this.field.value='';	
            }
            return true;
        },

        focus : function(event){
            if(this.field.value==this.emptyText){
                this.field.value='';
            }

        },

        blur : function(event){
            if(this.field.value==''){
                this.field.value=this.emptyText;
            }
        },

        initAutocomplete : function(url, destinationElement){
            new Ajax.Autocompleter(
                this.field,
                destinationElement,
                url,
                {
                    paramName: this.field.name,
                    minChars: 2,
                    updateElement: this._selectAutocompleteItem.bind(this),
                    onShow : function(element, update) { 
                        if(!update.style.position || update.style.position=='absolute') {
                            update.style.position = 'absolute';
                            if (!Prototype.Browser.IE8 ) {
                            	
                            	Position.clone(element, update, {
                                setHeight: false, 
                                offsetTop: element.offsetHeight
                            	});
                            }
                        }
                        Effect.Appear(update,{duration:0});
                    }

                }
            );
        },

        _selectAutocompleteItem : function(element){
            if(element.title){
                this.field.value = element.title;
            }
            this.form.submit();
        }
    }



// JavaScript Document for by color dropdown list
function getValue(wrap_id,id,li){
   document.getElementById(id).value = li.id;
   document.getElementById(wrap_id).parentNode.getElementsByTagName("div")[0].innerHTML = li.childNodes[1].innerHTML;
   document.getElementById(wrap_id).style.display = 'none';
   }
function showMenu(menu_id){
	document.getElementById(menu_id).style.display = 'block';}
function hideMenu(menu_id){
	document.getElementById(menu_id).style.display = 'none';
	}

/*#############################################################*/
vs_wrap_id_pre = "select_" ;
s_wrap_id_pre = "select_wrap";
s_wrap_class = "select_box";
s_d_id_pre = "s";
s_defaultoption_classname = "tag_select" ; 
s_defaultoption_id_prefix = "select_info_" ;
s_option_classname = "ul_options" ;
s_zIndex = "10" ;
s_cursor= "";
s_width = "220px";
o_ul_id_pre = "options_"
o_ul_zIndex = "11";
opt_cursor = "pointer" ;
opt_classname = "opt_classname" ;
opt_selected_classname = "";
opt_selecte_id_prefix = "selected_";

a_wrap = 1;
/*============================================================*/
var selects = document.getElementsByTagName('select');

function getSelect(){
var elems = document.getElementsByTagName('select');
var result=[];
for (i=0; j=elems[i]; i++){
  if (j.className.indexOf('vselect') != -1){
   result.push(j);
  }
}
return result;
}


var isIE = (document.all && window.ActiveXObject && !window.opera) ? true : false;

function stopBubbling (ev) {
	ev.stopPropagation();
}

function rSelects() {
    selects = getSelect();
	for (i=0;i<selects.length;i++){
		select_tag = document.createElement('div');
			select_tag.id = s_wrap_id_pre + selects[i].name;
			select_tag.className = s_wrap_class;
			//select_tag.style.width = selects[i].offsetWidth+"px";
			select_tag.style.cursor = opt_cursor;
			select_tag.style.zIndex = s_zIndex;
		selects[i].parentNode.insertBefore(select_tag,selects[i]);

		select_info = document.createElement('div');
		    select_info.id = s_d_id_pre + selects[i].id;
		    select_info.className = selects[i].className;
			select_info.style.zIndex = s_zIndex;
		select_tag.appendChild(select_info);
		
		select_ul = document.createElement('ul');	
		    select_ul.id = o_ul_id_pre + selects[i].name;
		    select_ul.className = s_option_classname;
			//select_ul.style.width = selects[i].offsetWidth+"px";
			select_ul.style.position = "absolute";
			select_ul.style.top = "22px";
			select_ul.style.left = "0px";
			
			select_ul.style.zIndex = o_ul_zIndex ;
		    select_tag.appendChild(select_ul);
		select_ul.style.display = "none";
		selects[i].style.display = 'none';

		rOptions(i,selects[i].name,selects[i].id);
		
		mouseSelects(selects[i].name,i);

		if (isIE){
			selects[i].onclick = new Function("clickLabels3('"+selects[i].name+"');window.event.cancelBubble = true;");
		}
		else if(!isIE){
			selects[i].onclick = new Function("clickLabels3('"+selects[i].name+"')");
			selects[i].addEventListener("click", stopBubbling, false);
		}		
	}
}


function rOptions(i, name ,id) {
	var fragment = document.createDocumentFragment();
	var options = selects[i].getElementsByTagName('option');
	var options_ul = 'options_' + name;
	for (n=0;n<selects[i].options.length;n++){	
		option_li = document.createElement('li');
		option_li.className= selects[i].options[n].className;
		option_li.id=  selects[i].options[n].id;
		option_li.style.cursor = opt_cursor;
		if(n==0) {
			option_li.style.fontWeight = "bold";
		}
		fragment.appendChild(option_li);
		//s(options_ul).appendChild(option_li);
		var option_text ;

		option_text = document.createTextNode(selects[i].options[n].text);
		option_li.appendChild(option_text);

		option_selected = selects[i].options[n].selected;

		if(option_selected){
			option_li.className= selects[i].options[n].className+" selected" ;
			$(s_d_id_pre + id).appendChild(document.createTextNode(selects[i].options[n].text));
		}
		
		option_li.onmouseover = function(){	this.className+=' hover';}
		option_li.onmouseout = function(){
			this.className=this.className.replace(new RegExp("( ?|^)hover\\b"),"");
		} 
	
		option_li.onclick = new Function("clickOptions("+i+","+n+",'"+selects[i].name+"')");
		//options_ul.onmouseout = function(){ this.style.display = 'none';}
	}
	$(options_ul).appendChild(fragment);
}

function mouseSelects(name,i){
	var sincn = s_d_id_pre + name;

	$(sincn).onmouseover = function(){ this.className+=' shover'; }
	$(sincn).onmouseout = function(){ 
	$(o_ul_id_pre + name ).style.display = 'none' ;
	this.className=this.className.replace(new RegExp("( ?|^)shover\\b"),""); 
	}

	if (isIE){
		$(sincn).onclick = new Function("clickSelects('"+name+"');window.event.cancelBubble = true;");
	}
	else if(!isIE){
		$(sincn).onclick = new Function("clickSelects('"+name+"');");
		$(sincn).addEventListener("click", stopBubbling, false);
	}

}

function clickSelects(name){
	var sincn = s_wrap_id_pre + name;
	var sinul = o_ul_id_pre + name;
	for (i=0;i<selects.length;i++){
		if(selects[i].name == name){
             if($(sinul).style.display == 'block')
				{$(sinul).style.display = 'none';}
			 else{$(sinul).style.display = 'block';}
		}
		else{
			$(o_ul_id_pre + selects[i].name).style.display = 'none';
		}
	}
	$(sinul).onmouseover = function(){this.style.display = "block";}
	$(sinul).onmouseout = function(){this.style.display = "none";}
}

function clickOptions(i, n, name){
	var li = $(o_ul_id_pre + name).getElementsByTagName('li');
	li[n].id='selected_' + name;
    $(s_d_id_pre + name).replaceChild(document.createTextNode(li[n].childNodes[0].nodeValue),$(s_d_id_pre + name).childNodes[0]);
	mouseSelects(name);
	$(o_ul_id_pre + name ).style.display = 'none' ;
	selects[i].options[n].selected = 'selected';
}

window.onload = function(e) {
	bodyclick = document.getElementsByTagName('body').item(0);
	rSelects();
		bodyclick.onclick = function(){
		for (i=0;i<selects.length;i++){	
			//s('select_info_' + selects[i].name).className = 'tag_select';
			$(o_ul_id_pre + selects[i].name).style.display = 'none';
			$('options_' + selects[i].name).style.display = 'none';
		}
	}
}

