
var oocart = new shoppingcart();
//oocart.load();
var debugging = 0;
var multidomain = 0;
var manage_ind = 1;

if ($.cookie('manageind') == 1){
manage_ind = 1;
}

function roundVal(val){
    var dec = 2;
    var result = Math.round(val*Math.pow(10,dec))/Math.pow(10,dec);
    result = result.toString();
    if (result.length == (result.indexOf('.') + 2)){
      result += "0";
    }
    return result;
}

function removeFromCart(domain, type) {
    track("cart/remove/"+type);
    oocart.removeItem(domain);
    redraw_cart();
}



function addManyToCart(domains){
    var domarray = domains.split(',');
    $.each(domarray, function(){
        oocart.addItem(this, "regular", "12.95");
    });

    track("cart/addmany/" + domarray.length );
    update("<p>" + "Added " + domarray.length + " domains to your cart!" + "</p>");
    redraw_cart();

}



function addToCart(domain, type, price) {
    if(oocart.itemCount() >= 5){ 
        alert("Unfortunately you can only add up to 5 domains to the cart at this time.");
    } else {
        if (type == "suggested"){
            track("cart/add/" + type +"/"+price);
            price = null;
        } else {
            track("cart/add/" + type );
        }
        oocart.addItem(domain, type, price);
        redraw_cart();
    }
}

function buyOnly(domain,type,price){
    if (type == "suggested"){
        track("cart/buyonly/" + type +"/"+price);
        price = null;
    } else {
        track("cart/buyonly/" + type );
    }
    oocart.clearCart();
    oocart.save();
    oocart.addItem(domain, type, price);
    $("#buynow").html(oocart.renderBuyOnly(domain));
}

function privatize (domain, checked) {
    track("cart/private/"+checked);
    oocart.privatize(domain, checked);
    redraw_cart();
    if( $("#buynow").css("display") =="block" ){
        $("#buynow").html(oocart.renderBuyOnly(domain));
    }
    makeLinksWork();
}

function updateTerm (domain, term) {
    track("cart/term/"+term);
    oocart.updateTerm(domain, term);
    redraw_cart();
    $("#buynow").html(oocart.renderBuyOnly(domain));
    makeLinksWork();
}
function redraw_cart () {
    oocart.save();
    var html = oocart.renderCart();

    if (html) { 
        $("#carttab").slideDown("slow");
        $(".proceed").slideDown("slow");
    } else {
        $("#carttab").hide();
        $(".proceed").hide();
        $('#tabs').tabs('select', '#sect_info');
    }
    
    var foothtml = oocart.renderSum();
    $("#cart tbody").html(html);
    $("#cart tfoot").html(foothtml);
    
    if (manage_ind == 1) { 
      $(".optional").show();  
      $("#manage_all").hide();
    } else {
//      $("#manage_all").show();
//      $(".optional").hide();  
    }
}

function manageInd () {
    manage_ind = 1;
    $.cookie("manageind",1);
    $("#manage_all").slideUp("slow");
    redraw_cart();
}

function replacer(key, value) {
    if (typeof value === 'number' && !isFinite(value)) {
        return String(value);
    }
    return value;
}

function clearCart(){
    track("cart/clear");
    if (confirm("Are you sure you would like to empty your shopping cart?")){
        oocart.clearCart();
        oocart.save();
        $('#tabs').tabs('select', '#sect_info');
        redraw_cart();
    }
}




function buyNow(domain, type, price) {
    $.modal("<div id='buynow'></div>");
    if (oocart.itemCount() == 0){
        buyOnly(domain,type,price);
    } else {
        var domaincount = oocart.itemCount();
        $("#buynow").html("<h1><span class=\"red\">Warning:</span> You already have "+domaincount+" domains in your shopping cart</h1>\
<input type='button' class='simplemodal-close' onclick='addToCart(\""+domain+"\", \""+type+"\", \""+price+"\");$.modal.close()' value='Add to Cart'/>\
<input type='button' value='Buy only "+domain+"' onclick='buyOnly(\""+domain+"\", \""+type+"\", \""+price+"\")'; />\
<input type='button' class='simplemodal-close' value='Cancel' onclick='$.modal.close()'/>");
    }
}

function checkOut() {
    track("cart/checkout");
    oocart.save()
    oocart.checkOut();
}
   


$(document).ready(function(){

    $("#regular").tablesorter({ headers: { 1: { sorter: false }, 2: { sorter: false } } } );
    $("#suggested").tablesorter({ headers: { 1: { sorter: false }, 2: { sorter: false } } } );
    $("#sect_suggested table").tablesorter({ headers: { 1: { sorter: false }, 2: { sorter: false } } } );
    $("#premium").tablesorter({ headers: { 2: { sorter: false } } } );
    $("#sect_premium table").tablesorter({ headers: { 2: { sorter: false } } } );

   
    $("#domainsearch").focus();
    $('#tabs').tabs();
    $('#tabs').show();
  
    $('#tabs').bind('tabsselect', function(event, ui) {
        track(ui.tab.href.substring(ui.tab.href.indexOf("_")+1));
    });
  
    redraw_cart();
    $("body").css("overflow","visible");

    param =  $(document).getUrlParam("search");


    if (param){
        $("#domainsearch").val(param);
        search();
    } else {
        $(".searchresults").hide();
    }
    
    var autocart =  $(document).getUrlParam("cart");
    if (autocart){
      var autocartdomains = autocart.split(",");
      $.each(autocartdomains, function (domain){
          addToCart(autocartdomains[domain],"regular");
          $("#domainsearch").val(autocartdomains[domain]);
      });
      search();
      view("cart"); 
    }
    
    //getMessages("domains");  
    
    makeLinksWork();  	
});


var oldsearch = ''

function search(from){
    var searchterm;
    if (from == "thin") {
        searchterm = $("#thindomainsearch").val();
        $("#domainsearch").val(searchterm);
    } else {
        searchterm = $("#domainsearch").val();
        $("#thindomainsearch").val(searchterm);
    }
    if (searchterm != "" && searchterm != oldsearch ){
        track("search/" + searchterm);
        oldsearch = searchterm;
        $(".searchresults").slideDown("show");
        $('#tabs').tabs('select', '#sect_regular');


        $("#domainBubble").slideUp("slow");
        $(".yellowsearch").slideUp("slow");

        $("#thinsearch").slideDown("slow");


        searchRegular();
        searchSuggested();
        searchPremium();
    }
}

function searchRegular() {
    var totalavailable = new Array();
    $('#regbox').html("<div class='waiting'></div>");
    $('#sect_regular #regular tbody').html("<tr><td colspan=3 class='waiting'></td></tr>");
    $("#regular").trigger("update");
    $('#sect_regular #regular tfoot').html("");
    var searchterm = $("#domainsearch").val();
    $.getJSON("/bin/ajax/search" , { domain: searchterm, type:"regular" }, function(data){
        $('#sect_regular #regular tbody').html("");
        $('#regbox').html("");
            $('#regbox').append("<div class='rdomain lft available ui-corner-all' style='height:31px;' ><h1>"+searchterm+"</h1></div>");
        $.each(data.names, function(i,item){
            if (item.available != "taken") { totalavailable.push(item.name); }
            $("#tabs").css("background-image","none");
            $('#regular tbody').append("<tr><td>"+item.name+"</td><td style='text-align:left;'>$"+item.price+"</td><td style='text-align:center;'>" + (item.available == "taken" ? "Taken" : "<a href='javascript:buyNow(\""+item.name+"\",\"regular\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"regular\")'>Add to cart</a>" ) + "</td></tr>");
            //$('#regular tbody').append("<tr><td>"+item.name+"</td><td style='text-align:left;'>$"+item.price+"</td><td style='text-align:center;'>" + (item.available == "taken" ? " Taken (<a href='javascript:transferDomain(\""+item.name+"\");'>Transfer</a>) " : "<a href='javascript:buyNow(\""+item.name+"\",\"regular\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"regular\")'>Add to cart</a>" ) + "</td></tr>");
            if (item.available == "taken"){
                $('#sect_transfer #transfers tbody').append("<tr><td>"+item.name+"</td><td style='text-align:left;'>$"+item.price+"</td><td style='text-align:center;'><a href='javascript:buyNow(\""+item.name+"\",\"suggested\",\""+item.prefix+"\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"suggested\",\""+item.prefix+"\")'>Add to cart</a></td></tr>");
            }
            $('#regbox').append("<div class='rdomain lft "+item.available +" ui-corner-all'><h1>."+item.tld+"</h1><div>" + (item.available == "taken" ? " Taken " : "<a href='javascript:buyNow(\""+item.name+"\",\"regular\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"regular\")'>Add to cart</a>" ) + "</div></div>");

            if (item.name == searchterm && item.available != "taken"){
                $('#regular tbody :last-child :contains('+item.name+')').closest("tr").children().addClass("exactmatch");
            }
        });

        if ( totalavailable.length > 0 ){
            $('#regular tfoot').html("<tr><td>"+totalavailable.length+" Domains Available</td><td style='text-align:left;'>$"+roundVal(totalavailable.length * 12.95)+"</td><td style='text-align:center;'> <a href='javascript:addManyToCart(\""+totalavailable.join(',')+"\")'>Add all to cart</a></td></tr>");
        }

        $("#regular").trigger("update");
    });
}

function transferDomain(domain){
    var transfer_bubble = new Bubble("tbubble", "ok");
    transfer_bubble.form_id = 'transferform';
    transfer_bubble.form_onsubmit = 'checkAuthCode(this); return false;';

    transfer_bubble.body += "<input type='hidden' name='domain' value='"+domain+"'/>";
    transfer_bubble.body += "<br/><p style='text-align:left'>Once you initiate the transfer process with us, a confirmation request will be sent via email to the Administrative Contact listed in the WHOIS.</p><br/>";
    transfer_bubble.body += "<p style='text-align:left'>Once the Administrative Contact has confirmed the request, we will contact the registry and the registry will then notify the current Registrar that the domain name should be transferred to Register.com. At this point, the current Registrar may also send an email to the Administrative Contact or registrant to confirm the requested transfer. You must also confirm this email, otherwise the current Registrar may stop the transfer from proceeding.</p><br/>";
    transfer_bubble.body += "<p style='text-align:left'>From start to finish, this process may take approximately 5 - 10 calendar days to be completed.</p><br/>";
    transfer_bubble.body += "<br/><p><input type='checkbox' name='agree'>Yes, I'm authorized to initiate the transfer of registrar for " +domain+ "</p><br/>";
    transfer_bubble.body += "<p>Auth Code:<input type='text' name='authcode'/><input type='submit' value='Continue'/></p><br/>";
    $.modal("<h1 style='margin: 0pt 0pt 20px; text-align: left; font-size: 2.4em;'>Transfer domain: "+domain+"</h1>" + transfer_bubble.HTML());
    //$.modal("<div id='transfer'>Yes, I'm authorized to initiate the transfer of registrar for  " +domain+ "<br><input type='text'/><input type='submit' value='Continue'/></div>");
}

function checkAuthCode (form) {
    if (form.agree == 0) { 
        alert("You must be authorized to initiate the transfer to continue.");
    } else {
        $.getJSON("/bin/ajax/transfer" , { authcode:form.authcode.value  , domain: form.domain.value }, function(data){
            if (data.transfer == 0){ 
                alert(data.result + "\n" + "Please check the auth code and try again");
            } else { 
                alert("success");  
            }
        });
    }
}

function searchSuggested() {
    var count = 0;
    var totalavailable = new Array();
    $('#suggested tbody').html("<tr><td colspan=3 class='waiting'></td></tr>");
    $('#suggested tfoot').html("");
    $("#suggested").trigger("update");
    $("#sect_suggested table").trigger("update");
    var searchterm = $("#domainsearch").val();
    $.getJSON("/bin/ajax/search" , { domain: searchterm, type:"suggested" }, function(data){
        $('#suggested tbody').html("");
        if (data.prefix.length == 0){
            $('#sect_regular #suggested tbody').html("<tr><td colspan=3><h2>No suggested domains found.<br/> Please try another search.</h2></td></tr>");
            $('#sect_suggested #suggested tbody').html("<tr><td colspan=3><h2>No suggested domains found. Please try another search.</h2></td></tr>");
            $('#suggested').trigger("update");
            $("#sect_suggested table").trigger("update");
        } else {
            $('#sect_regular #suggested tfoot').html("<tr><td colspan='3'><a class=\"bold\" href='javascript:view(\"suggested\")'>More Suggested Domains -></a></td></tr>");
            $.each(data.prefix, function(i,item){

                if (count <= 8 ){
                    $('#suggested tbody').append("<tr><td>"+item.name+"</td><td style='text-align:left;'>$"+item.price+"</td><td style='text-align:center;'><a href='javascript:buyNow(\""+item.name+"\",\"suggested\",\""+item.prefix+"\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"suggested\",\""+item.prefix+"\")'>Add to cart</a></td></tr>");
                } else {
                    $('#sect_suggested #suggested tbody').append("<tr><td>"+item.name+"</td><td style='text-align:left;'>$"+item.price+"</td><td style='text-align:center;'><a href='javascript:buyNow(\""+item.name+"\",\"suggested\",\""+item.prefix+"\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"suggested\",\""+item.prefix+"\")'>Add to cart</a></td></tr>");
                }
                count++;
            });
        }
        $("#suggested").trigger("update");
        $("#sect_suggested table").trigger("update");
    });
}



function searchDiscount() {
    $("#tabs").css("background-position","50% 50%");
    $("#tabs").css("background-repeat","no-repeat");
 
    $("#tabs").css("background-image","url(images/loading.gif)");
    $('#sect_discount').html("<table><thead></thead><tbody></tbody></table>");
    var searchterm = $("#domainsearch").val();
    $.getJSON("/bin/ajax/search" , { domain: searchterm, type:"discount" }, function(data){
        $("#tabs").css("background-image","none");
//        $('#sect_discount table thead').append(heading);
        $.each(data.deadnames, function(i,item){
            $('#sect_discount table tbody').append("<tr><td>"+item.name+"</td><td style='text-align:left;'>$"+item.price+"</td><td style='text-align:center;'><a href='javascript:buyNow(\""+item.name+"\",\"discount\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"discount\",\"10.95\")'>Add to cart</a></td></tr>");
        });
    });
} 



var heading = "<tr><th class=\"domain\" style='width:400px;'>Domain</th><th class=\"prices\" style='width:100px;'>Price</th><th class=\"status\" style='width:500px;text-align:center;'>Actions | Status</th></tr>";





function searchPremium() {
    $('#sect_regular #premium tfoot').html("");
    var count = 0;
    $('#sect_premium table tbody').html("<tr><td colspan=3 class='waiting'></td></tr>");
    $('#sect_regular #premium tbody').html("<tr><td colspan=3 class='waiting'></td></tr>");
    var searchterm = $("#domainsearch").val();
    $.getJSON("/bin/ajax/search" , { domain: searchterm, type:"premium" }, function(data){
        $('#sect_regular #premium tbody').html("");
        $('#sect_premium table tbody').html("");
        if (data.premiumnames.length == 0){
            $('#sect_regular #premium tbody').html("<tr><td colspan=3><h2>No premium domains found.<br/> Please try another search.</h2></td></tr>");
            $('#sect_premium table tbody').html("<tr><td colspan=3><h2>No premium domains found. Please try another search.</h2></td></tr>");
            $('#premium').trigger("update");
            $("#sect_premium table").trigger("update");
        } else {
            $('#sect_regular #premium tfoot').html("<tr><td colspan='3'><a class=\"bold\" href='javascript:view(\"premium\")'>More Premium Domains -></a></td></tr>");
            $.each(data.premiumnames, function(i,item){
                $("#tabs").css("background-image","none");
          //    if (count == 0){
           //       $('#sect_premium table tbody').append("<tr><td>"+item.name+"</td><td style='text-align:left;'>$"+ roundVal(parseFloat(item.price) + 12.95)+"</td><td style='text-align:center;'><a href='javascript:buyNow(\""+item.name+"\",\"premium\",\""+item.price+"\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"premium\",\""+item.price+"\")'>Add to cart</a></td></tr>");
              //     $('#sponsoredpremium').html("<p>"+ "<a class=\"bold\" href='javascript:view(\"premium\")'>" + item.name + "</a>" +" is available for $"+ roundVal(parseFloat(item.price) + 12.95)+" under our <a href='javascript:view(\"premium\")'>Premium</a> section.<br/>"+
                 //       "<a href='javascript:buyNow(\""+item.name+"\",\"premium\",\""+item.price+"\")' onclick='track(\"sponsored\")'>Buy it now</a> or <a href='javascript:addToCart(\""+item.name+"\",\"premium\",\""+item.price+"\")' onclick='track(\"sponsored\")'>add it to your cart</a>. (<a href='javascript:help(\"premium\")' >Learn More</a>)</p>");
              //      $('#sponsoredpremium').slideDown("slow");
          //      } else {
            //        $('#sect_premium table tbody').append("<tr><td>"+item.name+"</td><td style='text-align:left;'>$"+ roundVal(parseFloat(item.price) + 12.95)+"</td><td style='text-align:center;'><a href='javascript:buyNow(\""+item.name+"\",\"premium\",\""+item.price+"\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"premium\",\""+item.price+"\")'>Add to cart</a></td></tr>");
          
                if (count <= 8){
                    $('#sect_regular #premium tbody').append("<tr><td>"+item.name+"</td><td style='text-align:left;'>$"+ roundVal(parseFloat(item.price))+"</td><td style='text-align:center;'><a href='javascript:buyNow(\""+item.name+"\",\"premium\",\""+item.price+"\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"premium\",\""+item.price+"\")'>Add to cart</a></td></tr>");
                    $('#sect_premium #premium tbody').append("<tr><td>"+item.name+"</td><td style='text-align:left;'>$"+ roundVal(parseFloat(item.price))+"</td><td>$12.95</td><td style='text-align:center;'><a href='javascript:buyNow(\""+item.name+"\",\"premium\",\""+item.price+"\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"premium\",\""+item.price+"\")'>Add to cart</a></td></tr>");
                    if (count == 0){
                        $('#premium tbody :last-child :contains('+item.name+')').append("<span class='smallflag'>&nbsp</span>");
                        $('#premium tbody :last-child :contains('+item.name+')').closest("tr").children().addClass("exactmatch");
                    }
                } else {
                    $('#sect_premium #premium tbody').append("<tr><td>"+item.name+"</td><td style='text-align:left;'>$"+ roundVal(parseFloat(item.price))+"</td><td>$12.95</td><td style='text-align:center;'><a href='javascript:buyNow(\""+item.name+"\",\"premium\",\""+item.price+"\")'>Buy Now</a> | <a href='javascript:addToCart(\""+item.name+"\",\"premium\",\""+item.price+"\")'>Add to cart</a></td></tr>");

                }

                count++;
                if (item.name == searchterm ){
                    $('#premium tbody :last-child :contains('+item.name+')').closest("tr").children().addClass("exactmatch");
                    $('#tabs').tabs('select', '#sect_premium');
                }
                makeLinksWork();
            });
            $("#premium").trigger("update");
            $("#sect_premium table").trigger("update");
        }
    });
}

function toggle_sibling(section, sibling) {
    if ($(section).parent().children("."+sibling).css("display") == "none") {
        $(section).parent().children("."+sibling).slideDown("slow");
    } else {
        $(section).parent().children("."+sibling).slideUp("slow");
    }
}
