﻿
$(document).ready(function() {

   Setup();
   Search();
        
});

function Setup(){
    $.blockUI.defaults = { 
        overlayCSS:  { backgroundColor: 'White', opacity: '0.9' }
    };        
    $(".Options a").click(function(){  
        if($(this).attr("class")=="Yes"){
            $(this).removeClass().addClass("No");
        }else{
            $(this).removeClass().addClass("Yes");
        }
        Search();        
    });      
    $(".Options select").change(
        function(){
            Search();
        }
    );
}

function Block(){
    $(".Block").block("<img src='i/loading.gif' alt=''/>");
}

function Unblock(){
    $(".Block").unblock();
}

function Search(){

    Block();
    
    //vars will hold a name value collection of search criteria
    var vars = "s=1";
    var gift = 0;
    
    //get dropdownlist values
    $(".Options select").each(function(){    
        var name = $(this).attr("id");
        name = name.substring(name.lastIndexOf("_")+1);
        var value = $(this).val();
        if(value != "Any"){
            vars += "&" + name + "=" + value
            if(name == "gift"){
                gift = value;
            }
        }        
    });
    
    //get checkbox values
    $(".Options a").each(function(){
        var name = $(this).attr("id");
        name = name.substring(0, name.lastIndexOf("_"));
        name = name.substring(name.lastIndexOf("_")+1);
        var value = $(this).attr("class");
        if(value == "Yes"){
            vars += "&" + name + "=1"
        }
    });
        
    //get data
    $.getJSON("Data.ashx", { "action": "HandsetSearch", "vars": vars, "Refresh": new Date().getTime() }, function(data){
              
        var result = "";
            
        //for each manufacturer returned
        $.each(data, function(i, e){
        
            result += "<div class='Manufacturer'>";
                result += "<div class='TitleBar'>";
                    result += "<div class='Outer'>";
                        result += "<div class='Inner'>";
                            result += "<div class='Plus'>";
                                result += e["1"];
                            result += "</div>";
                        result += "</div>";
                    result += "</div>";
                result += "</div>";
            result += "</div>";
            
            //if phones exist for this manufacturer
            if(e["3"]){
            
                result += "<div class='Phones'>";
                    result += "<ul class='Items'>";
                        
                        $.each(e["3"], function(ii, ee){
                            var url = "handset-" + ee["0"] + "-" + url_encode(ee["4"]) + "-" + url_encode(ee["1"]) + ".aspx";
                            if(gift > 0){url += "?gift=" + gift;}
                            result += "<li>";
                            result += "<div><a href='" + url + "'><img src='" + files_central + ee["2"] + "' alt='" + ee["1"] + "'/></a></div>";
                            result += "<div class='Label'>" + ee["1"] + "</div>";
                            result += "</li>";
                        });
                        result += "<div class='Clear'></div>";
                        
                    result += "</ul>";
                result += "</div>";
                
            }
        });
        
        //build search criteria
        var lbl_criteria = $("#lbl_criteria");
        var criteria = "You searched for all";
        
        if (vars.indexOf("latest") > 0){
            criteria += " the <strong>Latest</strong>";
        }
        if (vars.indexOf("brand") > 0){
            criteria += " <strong>" + $("#ctl00_Content_ddl_brand option:selected").text() + "</strong>";
        }
                
        criteria += " mobile phones";
        
        var i = 0;
        var options = $(".Options a");
        var length = 0;
        var criteria_options = "";
        
        if (vars.indexOf("camera") > 0){
            criteria_options += " a <strong>" + $("#ctl00_Content_ddl_camera option:selected").text() + " Camera</strong>";
            i += 1;
            length += 1;
        }
        
        options.each(function(){
            if($(this).attr("id").indexOf("latest") < 0){
                var value = $(this).attr("class");
                if(value == "Yes"){
                    length += 1;
                }
            }
        });
        
        if(length > 0){
            options.each(function(){
                if($(this).attr("id").indexOf("latest") < 0){
                    var value = $(this).attr("class");
                    if(value == "Yes"){
                        if (i > 0){
                            if(i < length-1){
                                criteria_options += ",";
                            }else{
                                criteria_options += " and";
                            }
                        }
                        criteria_options += " <strong>" + $(this).text() + "</strong>";
                        i += 1;
                    }
                }
            });
        }
        
        if(i > 0){
            criteria += " with " + criteria_options;
        }
        
        if (vars.indexOf("availability") > 0){
            if (vars.indexOf("Available Now") > 0){
                criteria += " which are <strong>Available Now</strong>";
            }else{
                criteria += " which are <strong>Coming Soon</strong>";
            }
        }
        
        if (vars.indexOf("gift") > 0){
            if (vars.indexOf("freelinerental") > 0){
                criteria += " [and] come with a <strong>" + $("#ctl00_Content_ddl_gift option:selected").text() + "</strong> and <strong>" + $("#ctl00_Content_ddl_freelinerental option:selected").text() + " Free Line Rental</strong>";
            }else{
                criteria += " [and] come with a <strong>" + $("#ctl00_Content_ddl_gift option:selected").text() + "</strong>";
            }
        }else{
            if (vars.indexOf("freelinerental") > 0){
                criteria += " [and] come with <strong>" + $("#ctl00_Content_ddl_freelinerental option:selected").text() + " Free Line Rental</strong>";
            }
        }
        
        if(criteria.indexOf("mobile phones [and]") > 0){
            criteria = criteria.replace("[and]", "which");
        }else{            
            criteria = criteria.replace("[and]", "and");
        }
        
        if(criteria.indexOf("a <strong>Free Cash") > 0){
            criteria = criteria.replace("a <strong>Free Cash", "<strong>Free Cash");
        }
        
        criteria += ".";
        
        if(criteria == "You searched for all mobile phones."){
            criteria = "";
        }
        
        if(result == ""){
            criteria += "<br/>";
            criteria += "<br/>";
            criteria += "Sorry, Phone Genius can’t find any deals that fit your exact search criteria.";
            criteria += "<br/>";
            criteria += "<br/>";
            criteria += "Please refine your search to find new deals.";
        }
        
        //output freegift
        $("#lbl_freegift").empty();
        var giftdesc = "";
        if(result != ""){
            if(gift > 0){
                
                $.getJSON("Data.ashx", { "action": "FreeGiftDetails", "GiftID": gift, "Refresh": new Date().getTime() }, function(data){
                                                            
                    $.each(data, function(entryIndex, entry){   
                        giftdesc += "<div class='FreeGift'>";
                        giftdesc += "<img src='" + files + entry["1"] + "' alt=''/>"; 
                        giftdesc += "Get any of these handsets with "; 
                        if(entry["0"] != "Free Cash"){
                            giftdesc += "a ";
                        }
                        giftdesc += "" + entry["0"] + "."; 
                        giftdesc += "</div>"; 
                    });
                    
                    $("#lbl_freegift").html(giftdesc);
                    
                });
                
            }
        }      
        
        //output criteria   
        lbl_criteria.html(criteria);
                
        //output results                
        $("#lbl_results").html(result);
        
        Unblock();    
        
    });
    
}


    
    

