    var serverAddress = "http://www.pricewhispers.com";
    var panelFlag=0; //default to panel 0
    var panels=[];
    $(function() { 
        var pwsHtmls= '<div id="pws-bid-response" title="PriceWhispers"></div> <div id="pws-bid-help" title="PriceWhispers Help"> <p class="question">Name Your Price and Expiry Date</p> <p class="answer">To name your price commitment and share that with Lavish and Lime, you can specify your price and expiry date by using the sliders in the main price bidding window. You can move the sliders by hovering over and clicking on them with your mouse, then moving them to your desired pricing level or expiry date.</p> <p class="question">Enter your PriceWhispers Account</p> <p class="answer">After naming your price commitment, enter your PriceWhispers account email and password and submit your pricing commitment for Lavish and Lime&#39;s response. If you don&#39;t have a PriceWhispers account yet, you can get one for free through the main bidding window. You can also learn more about how PriceWhispers is empowering consumers by visiting Pricewhispers.com.</p> </div> <div id="pws-about" title="PriceWhispers Help"> <p class="question">What is PriceWhispers?</p> <p class="answer"><a href="'+ serverAddress + '" target="_blank">PriceWhispers</a> is an exciting new web service that lets consumers name their own price on products from their favorite online retailers.</p> <p class="question">How do I use it?</p> <p class="answer">By registering for free with PriceWhispers (you can do that from within the bidding window) and using the "Name your price" button wherever you see it.</p> </div> <div id="pws-bid" title="PriceWhispers" class="pws"> <div id="pws-bid-panel0" class="pws"> <table cellspacing="0"> <tr> <td><h4>Specify your price commitment</h4></td> <td><a href="#" onclick="openAboutDialog()" id="pwsAboutLink" style="color:green;">(what is this?)</a></td> </tr> </table> <form> <input type="hidden" id="pws_retailer_id" value=""/> <input type="hidden" id="pws_prod_id" value=""/> <input type="hidden" id="pws_prod_options" value="" /> <input type="hidden" id="pws_gift_text" value="" /> <input type="hidden" id="pws_prod_desc" value="" /> <input type="hidden" id="pws_prod_cat" value="" /> <table class="pws" cellspacing="5"> <tr> <th width="40%">Product: </th> <td width="60%"><span id="pws_prod_title"></span></td> </tr> <tr> <th>Details: </th> <td><span id="prod_details"></span></td> </tr> <tr> <th>List Price ($):</th> <td>$<span id="pws_list_price"></span></td> </tr> <tr> <th>Quantity:</th> <td><span id="pws_amt"></span></td> </tr> <tr></tr><tr> <td colspan="2" style="border:solid 1px #060"> <table style="padding-top:10px; padding-bottom: 10px"> <tr> <th style="width: 50%">Name Your Price <a href="#" onclick="openBidHelpDialog()" id="pwsBidHelpLink" style="color:green;">(help)</a>:</th> <td> <table><tr><td><input type="text" size="7" id="pws_discount" readonly="readonly" style="border:0; color:#f6931f; "/></td> <td><input type="text" size="12" readonly="readonly" id="pws_bid_price" style="border:0;color:#f6931f; "/></td></tr> </table> </td> </tr> <tr><td colspan="3"><div id="discount_slider" style="width:280px"></div></td></tr> <tr> <th>Bid Expiry <a href="#" onclick="openBidHelpDialog()" id="pwsBidHelpLink" style="color:green;">(help)</a>:</th> <td> <table> <tr> <td><input type="text" size="7" id="expire" readonly="readonly" style="border:0; color:#f6931f; "/> <td><input type="text" size="12"id="pws_exp_val" readonly="readonly" style="border:0;color:#f6931f;"/></td> </tr> </table> </td> </tr> <tr> <td colspan="3"><div id="expire_slider" style="width:280px"></div></td> </tr> </table> </td> </tr> <tr><td colspan="2"><h4>PriceWhispers Account Information</h4></td></tr> <tr> <th>Email:</th> <td ><input type="text" size="35" name="pws_email" id="pws_email" class="text ui-widget-content ui-corner-all" /></td> </tr> <tr> <th>Password:</th> <td><input type="password" name="password" id="password" class="text ui-widget-content ui-corner-all" /></td> </tr> <tr> <td colspan="4" class="prompt"> Do not have a PriceWhispers account? <a href="#" onclick="openRegistrationForm()" style="color:green;">Create One Free Now</a></td> </tr> </table> </form> </div> </div> <div id="pws-bid-panel1"> <form> <table class="pws"> <tr><td colspan="2"><h4>Sign up for a PriceWhispers account:</h4></td></tr> <tr><th>Email:</th><td ><input id="pwsSignupEmail" type="text" class="text ui-widget-content ui-corner-all" style="width: 200px"/></td></tr> <tr><th>Password:</th><td><input id="pwsSignupPassword" type="password" class="text ui-widget-content ui-corner-all" /></td></tr> <tr><th>Password (again):</th><td><input id="pwsSignupPassword2" type="password" class="text ui-widget-content ui-corner-all" /></td></tr> <tr><th>First Name:</th><td><input id="pwsSignupFirstName" type="text" class="text ui-widget-content ui-corner-all" style="width: 160px"/></td></tr> <tr><th>Last Name:</th><td><input id="pwsSignupLastName" type="text" class="text ui-widget-content ui-corner-all" style="width: 160px"/></td></tr> <tr><th>Address 1:</th><td><input id="pwsSignupAddress1" type="text" class="text ui-widget-content ui-corner-all" style="width: 200px"/></td></tr> <tr><th>Address 2:</th><td><input id="pwsSignupAddress2" type="text" class="text ui-widget-content ui-corner-all" style="width: 200px"/></td></tr> <tr><th>City:</th><td><input id="pwsSignupCity" type="text" class="text ui-widget-content ui-corner-all" style="width: 200px"/></td></tr> <tr><th>Country:</th><td><select id="pwsSignupCountry" class="ui-widget-content ui-corner-all"><option value="Canada">Canada</option><option value="USA">United States</option></select></td></tr> <tr><th>Province/State:</th><td> <select id="pwsSignupRegion" class="ui-widget-content ui-corner-all"> </select> </td></tr> <tr><th>Postal/Zip:</th><td><input id="pwsSignupZip" type="text" class="text ui-widget-content ui-corner-all"/></td></tr> <tr><th>Birthday:</th><td><input type="text" id="pws_SignupBirthDay" class="text ui-widget-content ui-corner-all"></td></tr> <tr><td colspan="2">&nbsp;</td></tr> <tr> <td colspan="2" class="prompt"> By clicking on "I Accept" below, you confirm that you accept the <a href="'+ serverAddress +'/consumer/terms.php" target="_blank" style="color:green;">Terms of Service</a> </td> </tr> </table> </form> </div>';
        $('body').append(pwsHtmls);
        panels[0] = $('#pws-bid-panel0');
        panels[1] = $('#pws-bid-panel1');

        $("#pws-bid").dialog({
            autoOpen: false,
            height: 500,
            width: 380,
            modal: true,
            position: 'center',
            buttons: {
                'Submit': function() {
                    if(panelFlag==0){
                         
                            $.ajax({
                                 url:serverAddress + "/api/json_bidProcessor3.php",
                                 asyn:false,
                                 data: { 
                                      pws_username: $('#pws_email').val(), 
                                      pws_password: $('#password').val(),
                                      pws_prod_id: $('#pws_prod_id').val(),
                                      pws_prod_title: $("#pws_prod_title").html(),
                                      pws_retailer_id: $("#pws_retailer_id").val(), 
                                      pws_exp_val: $("#pws_exp_val").val(),
                                      pws_amt: $("#pws_amt").html(),
                                      pws_list_price: $("#pws_list_price").html(),
                                      pws_bid_price: $("#pws_bid_price").val().substring(1),
                                      pws_discount: ($("#pws_discount").val()).replace('%', ''),
                                      pws_prod_options: $("#pws_prod_options").val(),
                                      pws_gift_text: $("#pws_gift_text").val(),
                                      pws_prod_desc: $.trim($("#pws_prod_desc").val()),
                                      pws_prod_cat: $("#pws_prod_cat").val(),
                                      pws_prod_url: location.href
                                 }, 
                                 dataType: "jsonp",
                                 success: function(data){
                                        var reply = data.PWSReply.ReplyText;
                                        $("#pws-bid-response").empty();
                                        $("#pws-bid-response").append(reply);
                                        $("#pws-bid-response").dialog('open');                             
                                 }
                                 
                            });
                            cleanBidForm();
                            $(this).dialog('close');  

                    }else if(panelFlag==1){

                            $.ajax({
                                 url: serverAddress + '/api/json_userSignup.php',
                                 asyn:false,
                                 data: { 
                                    pws_SignupEmail: $.trim($('#pwsSignupEmail').val()),
                                    pws_SignupPassword: $.trim($('#pwsSignupPassword').val()),
                                    pws_SignupPassword2: $.trim($('#pwsSignupPassword2').val()),
                                    pws_SignupFirstName: $.trim($('#pwsSignupFirstName').val()),
                                    pws_SignupLastName: $.trim($('#pwsSignupLastName').val()),
                                    pws_SignupAddress1: $.trim($('#pwsSignupAddress1').val()),
                                    pws_SignupAddress2: $.trim($('#pwsSignupAddress2').val()),
                                    pws_SignupCity: $.trim($('#pwsSignupCity').val()),
                                    pws_SignupRegion: $('#pwsSignupRegion').val(),
                                    pws_SignupZip: $.trim($('#pwsSignupZip').val()),
                                    pws_SignupCountry: $('#pwsSignupCountry').val(),
                                    pws_SignupBirthDay: $('#pws_SignupBirthDay').val()
                                 }, 
                                 dataType: "jsonp",
                                 success: function(data){
                                        var reply = data.PWSReply.ReplyText;
                                        $("#pws-bid-response").empty();
                                        $("#pws-bid-response").append(reply);
                                        var errs = data.PWSReply.arrErrors;
                                        for(var index in errs) {
                                            var key = index;
                                            var value = errs[index];
                                            var msg = '<p class="bidmsg">'+value+'</p>';
                                            $("#pws-bid-response").append(msg);
                                        }

                                        $("#pws-bid-response").dialog('open');  
                                        
                                        if(data.PWSReply.ReplyCode==0) {
                                               switchToPanel(0);
                                        }                     
                                 }
                                 
                            });
                            
                    }

                },    
                  Cancel: function() {
                      if(panelFlag==0){
                          cleanBidForm();
                          $(this).dialog('close');
                      }  else if(panelFlag==1){
                          cleanRegistrationForm();
                          switchToPanel(0);
                      }
                }
            },
            close: function() {
                cleanBidForm();
                cleanRegistrationForm();
            }
        });
 
        $("#pws-bid-response").dialog({
               autoOpen: false,
               height: 350,
               width: 380,
               modal: true,
               buttons:  {
                   'Ok': function(){ $(this).dialog('close');}
               }
        });  


        $("#pws-about").dialog({
               autoOpen: false,
               height: 350,
               width: 380,
               modal: true,
               buttons:  {
                   'Ok': function(){ $(this).dialog('close');}
               }
        });  

        $("#pws-bid-help").dialog({
               autoOpen: false,
               height: 400,
               width: 380,
               modal: true,
               buttons:  {
                   'Ok': function(){ $(this).dialog('close');}
               }
        });  
 
        $('#discount_slider').slider({
            orientation: "horizontal",
            range: "min",
            min: 0,
            max: 50,
            value: 0,
            slide: function(event, ui) {
                updatePrice(ui.value);
            }
        }); 

        $('#expire_slider').slider({
            orientation: "horizontal",
            range: "min",
            min: 14,
            max: 90,
            value: 14,
            slide: function(event, ui) {
                updateExpiration(ui.value);
            }
        }); 

        $('#pws_SignupBirthDay').datepicker({
            changeMonth: true,
            changeYear: true,
            yearRange: '1910:2000',
            dateFormat: 'yy-mm-dd' 
        });

        $("#pwsSignupCountry").change(function(){
             //alert($(this).val());
             setRegionOptions($(this).val());
        });
       
        registerRetailerEvents();
        panels[0].detach();
        panels[1].detach();

    });

   
    function openRegistrationForm(){
        switchToPanel(1);
        cleanRegistrationForm();
    }
    
    function openAboutDialog(){
           $("#pws-about").dialog('open');
    } 

    function openBidHelpDialog(){
           $("#pws-bid-help").dialog('open');
    } 
    
    function switchToPanel(p){
        var position=$('#pws-bid').dialog("option", "position" );
        switch(p) {
            case 0: 
                   panels[1].detach();
                   break;
            case 1:
                   panels[0].detach();
                   break;
        }
        $('#pws-bid').append(panels[p]);
        $('#pws-bid').dialog("option", "position", position )

        panelFlag=p;

    }                        
    
    function updatePrice(dis) {
        var quantity = $("#pws_amt").html(); 
        var listPrice = $("#pws_list_price").html(); 
        $("#pws_discount").val(dis + '%');
        var p = Math.round(quantity*listPrice * (1-dis/100)*100)/100;
        $("#pws_bid_price").val('$'+p);
    }
    
    function updateExpiration(expire){
        var d = new Date();
        $("#expire").val(expire + ' days'); 
        var expDate = new Date(d.getTime() + Math.round(expire*24*60*60*1000));
        var dateStr = expDate.getFullYear() + '-' + padL(expDate.getMonth() + 1, 2) + '-' + padL(expDate.getDate(),2);
        $("#pws_exp_val").val(dateStr);
        
    }
    
    function cleanBidForm(){
          $('#pws_email').val('');
          $('#password').val('');
          $("#discount_slider").slider("value", 0);
          $("#expire_slider").slider("value", 0);
    }

    function cleanRegistrationForm(){
          $('#pwsSignupEmail').val('');
          $('#pwsSignupPassword').val('');
          $('#pwsSignupPassword2').val('');
          $('#pwsSignupFirstName').val('');
          $('#pwsSignupLastName').val('');
          $('#pwsSignupAddress1').val('');
          $('#pwsSignupAddress2').val('');
          $('#pwsSignupCity').val('');
          $('#pwsSignupCountry').val('USA');
          setRegionOptions('USA');
    }
    
    function setRegionOptions(country){
        switch (country){
            case "USA":
                var options = '<option value="AK">Alaska</option> <option value="AL">Alabama</option> <option value="AR">Arkansas</option> <option value="AZ">Arizona</option> <option value="CA">California</option> <option value="CO">Colorado</option> <option value="CT">Connecticut</option> <option value="DC">Washington D.C.</option> <option value="DE">Delaware</option><option value="FL">Florida</option><option value="GA">Georgia</option><option value="HI">Hawaii</option> <option value="IA">Iowa</option> <option value="ID">Idaho</option> <option value="IL">Illinois</option> <option value="IN">Indiana</option> <option value="KS">Kansas</option> <option value="KY">Kentucky</option> <option value="LA">Louisiana</option> <option value="MA">Massachusetts</option> <option value="MD">Maryland</option> <option value="ME">Maine</option> <option value="MI">Michigan</option> <option value="MN">Minnesota</option> <option value="MO">Missourri</option> <option value="MS">Mississippi</option> <option value="MT">Montana</option> <option value="NC">North Carolina</option> <option value="ND">North Dakota</option> <option value="NE">Nebraska</option> <option value="NH">New Hampshire</option> <option value="NJ">New Jersey</option> <option value="NM">New Mexico</option> <option value="NV">Nevada</option> <option value="NY">New York</option> <option value="OH">Ohio</option> <option value="OK">Oklahoma</option> <option value="OR">Oregon</option> <option value="PA">Pennsylvania</option> <option value="PR">Puerto Rico</option> <option value="RI">Rhode Island</option> <option value="SC">South Carolina</option> <option value="SD">South Dakota</option> <option value="TN">Tennessee</option> <option value="TX">Texas</option> <option value="UT">Utah</option> <option value="VA">Virginia</option> <option value="VT">Vermont</option> <option value="WA">Washington</option> <option value="WI">Wisconsin</option> <option value="WV">West Virginia</option> ';
                $('#pwsSignupRegion').empty();
                $('#pwsSignupRegion').append(options);
                $('#pwsSignupRegion').val('AK');
                break;
            case "Canada":
                var options = '<option value="AB">Alberta</option> <option value="BC">British Columbia</option> <option value="MB">Manitoba</option> <option value="NB">New Brunswick</option> <option value="NL">Newfoundland and Labrador</option> <option value="NS">Nova Scotia</option> <option value="ON">Ontario</option> <option value="PE">Prince Edward Island</option> <option value="QC">Quebec</option> <option value="SK">Saskatchewan</option>';
                $('#pwsSignupRegion').empty();
                $('#pwsSignupRegion').append(options);
                $('#pwsSignupRegion').val('AB');
                break;            
        }
        
    }
    
    function padL(number, numDigits){
        var str = number.toString();
        while (str.length < numDigits) str = '0' + str;
        return(str);    
    }
