var xmlHttp; function refine_search_results(refine_by_label, refine_by_value, category, search_term, toggle, brand_id) { document.getElementById("products_container").style.display = 'none'; xmlHttp=GetXmlHttpObject(); if (xmlHttp==null) { alert ("Your browser does not support AJAX!"); return; } var url = location.href; urlSplit1 = url.split("#!"); //URL #! brand=Kerastase,Loreal&price=p5,p10 //urlSplit1[0] = URL //urlSplit1[1] = brand=Kerastase&price=p5 if(urlSplit1[1].indexOf("&") > -1) { var urlSplit2 = urlSplit1[1].split("&"); //brand=Kerastase,Loreal & price=p5,p10 //urlSplit2[0] = brand=Kerastase //urlSplit2[1] = price=p5 var urlSplit3 = urlSplit2[0].split("="); //brand = Kerastase,Loreal var urlSplit4 = urlSplit2[1].split("="); //price = p5,p10 //IF BRAND if("brand" == urlSplit3[0]) { var brand = urlSplit3[1]; } else if("price" == urlSplit3[0]) { var price = urlSplit4[1]; } //IF PRICE if("price" == urlSplit4[0]) { var price = urlSplit4[1]; } else if("brand" == urlSplit4[0]) { var brand = urlSplit4[1]; } } else { var urlSplit5 = urlSplit1[1].split("="); //brand = Kerastase,Loreal //IF BRAND if("brand" == urlSplit5[0]) { var brand = urlSplit5[1]; } else if("price" == urlSplit5[0]) { var price = urlSplit5[1]; } } var url = 'ajax/refine_search_results.php'; url=url+"?"; if(price) { url=url+"price="+price+"&"; } if(brand) { url=url+"brand="+brand+"&"; } url=url+"cPath="+category; url=url+"&search_term="+search_term; url=url+"&toggle="+toggle; url=url+"&brand_id="+brand_id; url=url+"&sid="+Math.random(); document.getElementById("ajax_loader").style.display = ''; xmlHttp.onreadystatechange= function() { if (this.readyState==4) { //alert(this.responseText); if(this.responseText!='') { document.getElementById("products_container").style.display = ''; document.getElementById("products_container").innerHTML = this.responseText; document.getElementById("ajax_loader").style.display = 'none'; } } }; xmlHttp.open("GET",url,true); xmlHttp.send(null); } function GetXmlHttpObject() { if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari return new XMLHttpRequest(); } if (window.ActiveXObject) { // code for IE6, IE5 return new ActiveXObject("Microsoft.XMLHTTP"); } return null; } function hashbang(label,variable) { //console.log("1 :: LABEL: "+label+" ... VARIABLE: "+variable); var url = location.href; variable = variable.replace(" ", "+"); //DOES HASHBANG EXIST? if(url.indexOf("#!") > -1) { //console.log("2 :: HASHBANG EXISTS!"); //IS THE CHECKBOX CHECKED?! if(document.getElementById(variable).checked == true) { //console.log("3 :: CHECKBOX = true"); //DO LABEL AND VARIABLE EXIST IN URL? if(url.indexOf(label) > -1 && url.indexOf(variable) == -1) { //LABEL EXISTS, VARIABLE DOESNT urlSplit1 = url.split("#!"); //URL #! brand=Kerastase&price=p5 //urlSplit1[0] = URL //urlSplit1[1] = brand=Kerastase&price=p5 //DO BOTH FILTERS (BRAND AND PRICE) EXIST IN URL? if(urlSplit1[1].indexOf("&") > -1) { //console.log("4a :: BOTH FILTERS (BRAND AND PRICE) EXIST IN URL"); //BOTH BRAND AND PRICE EXIST var urlSplit2 = urlSplit1[1].split("&"); //brand=Kerastase & price=p5 //urlSplit2[0] = brand=Kerastase //urlSplit2[1] = price=p5 var urlSplit3 = urlSplit2[0].split("="); //brand = Kerastase var urlSplit4 = urlSplit2[1].split("="); //price = p5 //IF BRAND GO IN HERE if(label == urlSplit3[0]) { //console.log("4aa :: ITS A MOTHER FUCKING BRAND, ADD IT"); var newURL = urlSplit1[0]+"#!"+urlSplit2[0]+","+variable+"&"+urlSplit2[1]; } //IF PRICE GO IN HERE else if(label == urlSplit4[0]) { //console.log("4ab :: ITS A MOTHER FUCKING PRICE, ADD IT"); var newURL = urlSplit1[0]+"#!"+urlSplit2[0]+"&"+urlSplit2[1]+","+variable; } } else { //console.log("4b :: ONLY 1 FILTER EXISTS, ADD TO END"); //ONLY 1 FILTER EXISTS, ADD TO END var newURL = url+","+variable; } //var newURL = urlSplit1[0]+"#!"+urlSplit2[0]+"="+urlSplit2[1]+","+variable; //console.log("4c :: newURL > "+newURL); window.location = newURL; } else if(url.indexOf(variable) == -1) { //LABEL DOESNT, VARIABLE DOESNT var newURL = url+"&"+label+"="+variable; //console.log("5 :: LABEL DOESNT, VARIABLE DOESNT, ADD IT ON TO END > "+newURL); window.location = newURL; } else { //LABEL EXISTS, VARIABLE EXISTS //DO NOWT EH LAD } } else if(document.getElementById(variable).checked == false) { //console.log("6 :: CHECKBOX = false"); urlSplit5 = url.split("#!"); //URL #! brand=Kerastase&price=p5 //urlSplit5[0] = URL //urlSplit5[1] = brand=Kerastase&price=p5 if(urlSplit5[1].indexOf("&") > -1) { var urlSplit6 = urlSplit5[1].split("&"); //brand=Kerastase & price=p5 //urlSplit6[0] = brand=Kerastase //urlSplit6[1] = price=p5 var lonelyVariable = urlSplit6[1]; } else { var lonelyVariable = urlSplit5[1]; } if(url.indexOf("&"+label+"="+variable) > -1 && lonelyVariable.indexOf(",") == -1) { url = url.replace("&"+label+"="+variable, ""); //console.log("7 :: URL CONTAINS 2 FILTERS, REMOVING ONE CLOSEST TO HASHBANG > "+url); } else if(url.indexOf("#!"+label+"="+variable+"&") > -1) { url = url.replace("#!"+label+"="+variable+"&", "#!"); //console.log("8 :: URL CONTAINS 2 FILTERS, REMOVING ONE CLOSEST TO HASHBANG > "+url); } else if(url.indexOf(",") > -1 && url.indexOf(label+"="+variable) > -1) { url = url.replace(variable+",", ""); //console.log("9 :: URL CONTAINS COMMA, LABEL & VARIABLE, REMOVING VARIABLE > "+url); } else if(url.indexOf(",") > -1) { url = url.replace(","+variable, ""); //console.log("10 :: URL CONTAINS COMMA, REMOVING COMMA AND VARIABLE > "+url); } else { url = url.replace("#!"+label+"="+variable, ""); //console.log("11 :: NO COMMA IN URL REMOVING HASHBANG, LABEL & VARIABLE > "+url); } window.location = url; } } else { //HASHBANG DOES NOT EXIST, CREATE IT IMMEDIATELY NOW DAMN IT var newURL = url+"#!"+label+"="+variable; //console.log("12 :: HASHBANG DOES NOT EXIST"); //console.log("13 :: ADDING HASHBANG TO URL > "+newURL); window.location = newURL; } }