function str_replace (search, replace, subject, count) {
    // Replaces all occurrences of search in haystack with replace  
    // 
    // version: 1109.2015
    // discuss at: http://phpjs.org/functions/str_replace
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   input by: Oleg Eremeev
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Oleg Eremeev
    // %          note 1: The count parameter must be passed as a string in order
    // %          note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'
    var i = 0,
        j = 0,
        temp = '',
        repl = '',
        sl = 0,
        fl = 0,
        f = [].concat(search),
        r = [].concat(replace),
        s = subject,
        ra = Object.prototype.toString.call(r) === '[object Array]',
        sa = Object.prototype.toString.call(s) === '[object Array]';
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
 
    for (i = 0, sl = s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j = 0, fl = f.length; j < fl; j++) {
            temp = s[i] + '';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length - s[i].length) / f[j].length;
            }
        }
    }
    return sa ? s : s[0];
}

function getXMLHTTP() { //fuction to return the xml http object

		var xmlhttp=false;	
		try{
			xmlhttp=new XMLHttpRequest();
		}
		catch(e)	{		
			try{			
				xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){
				try{
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
				}
				catch(e1){
					xmlhttp=false;
				}
			}
		}
		return xmlhttp;
	}
	
	function showmesg(caller,mesg){
	alert("Called from: "+caller+" \n Message : "+ mesg);
	}
	
	function getResponseToDiv(actionURL,strDiv,optionid) {
            document.body.style.cursor = "url(arrow.cur), default" ;
		var strURL=actionURL;
                
                if (strDiv=='modeldiv')
                {
                    refreshdropdowns('modeldiv');
                    refreshdropdowns('yeardiv');
                }
                
         if (optionid=="-1")
         {
             refreshdropdowns(strDiv);
             return;
         }
		var req = getXMLHTTP();
		if (req) {
			req.onreadystatechange = function() {
				if (req.readyState==2 || 4) {
				//document.getElementById(strDiv).style.display="block";
				var loadingdiv = document.getElementById('loading');
                loadingdiv.style.display="block";

				document.body.style.cursor = "wait";
				}

				if (req.readyState == 4) {
				//document.getElementById(strDiv).style.display="none";
				document.body.style.cursor = "auto";
				var loadingdiv = document.getElementById('loading');
				loadingdiv.style.display="none";

					// Get response only if "OK"
					if (req.status == 200) {						
						document.getElementById(strDiv).innerHTML=req.responseText;						
					} else {
						alert("There was a problem while using XMLHTTP:\n" + req.statusText);
					}
				}				
			}
			req.open("GET", strURL, true);
			req.send(null);
		}
				
	}
 function refreshdropdowns(strDiv)
 {
     if(strDiv=="makediv")
     {
        document.getElementById("makediv").innerHTML = "<select id=make name=make> <option>Select Make</option> </select>";
     }
  
  
        if(strDiv=="yeardiv")
        {
            document.getElementById("yeardiv").innerHTML = "<select id=yaer name=year> <option>Select Year</option> </select>";
        }

 } 
 function trim(s){
    var l=0; var r=s.length -1;
    while(l < s.length && s[l] == ' ')
    {     l++; }
    while(r > l && s[r] == ' ')
    {     r-=1;     }
    return s.substring(l, r+1);
} 
function GYearSelected(baseURL){
	var makeval="";
	makeval=trim(document.getElementById("make").options[document.getElementById("make").selectedIndex].value);

	//if(makeval==-1)
	if(document.getElementById("make").options[document.getElementById("make").selectedIndex].id==-1)
	{
	//alert('Please Select Category ');

	document.getElementById("error-block-div").innerHTML="<p class=error-msg>"+"Please enter search settings"+"</p>";
	return;
	}
	if(document.getElementById("model").options[document.getElementById("model").selectedIndex].id==-1)
	{
		baseURL="<?php echo $this->getBaseUrl() ?>" + "catalogsearch/ymm/result/?name=&description=&short_description=&sku=&price%5Bfrom%5D=&price%5Bto%5D=&ymmmake="+makeval;
		top.location.href = baseURL;
		return

	}
	var modelval="";
	modelval=trim(document.getElementById("model").options[document.getElementById("model").selectedIndex].value);

	if(document.getElementById("year").options[document.getElementById("year").selectedIndex].id==-1)
	{
		baseURL="<?php echo $this->getBaseUrl() ?>" + "catalogsearch/ymm/result/?name=&description=&short_description=&sku=&price%5Bfrom%5D=&price%5Bto%5D=&ymmmake="+makeval+"&ymmmodel="+modelval;
		top.location.href = baseURL;
		return
	}

	var yearval=trim(document.getElementById("year").options[document.getElementById("year").selectedIndex].value);
    baseURL=baseURL+"parts/"+makeval+"/"+modelval+"/"+yearval;

    baseURL=str_replace(' ', '-', baseURL);


	//submit URL
	top.location.href = baseURL;
	
}
