var translation_path = '';

// Object for a product in the category. We load an array of these for use
// in navigating through the product parade.
// Object for a product in the category. We load an array of these for use
// in navigating through the product parade.
function categoryProduct(p_id, p_productnumber, p_description, p_msrp, p_rank, p_category_id, p_image_outsole, p_pud_available, p_label) {
    this.id = p_id;
    this.productnumber = p_productnumber;
    this.description = p_description;
    this.msrp = p_msrp;
    this.rank = p_rank;
    this.category_id = p_category_id;
    this.image_outsole = p_image_outsole;
    this.pud_available = p_pud_available;
    this.label = p_label;
    return true;
}

function showReviewTab() {
    window.location.href = "#reviewsAnchor";
    $j('#tabbed-content').tabs('select', 'reviews_tab');
    return false;
}
        		
/* Fade Toggler */
jQuery.fn.fadeToggle = function(speed, easing, callback) {
   return this.animate({opacity: 'toggle'}, speed, easing, callback);
}; 

var Site = {
  Common: {
    tabs: function(e) {
        // add a "hover" class while hovered. Used for dropdowns
        $j(e).tabs({selected: 0});
        $j(e).tabs('option', 'fx', { height: 'toggle', duration: 250 });
        // If the size chart count is greater than 0, then attach the event
        if (sizeChartCount == 0) {
           $j('#tabbed-content').tabs('remove', 1);      
        }
        else {
            // Bind a select item to it
            $j('#tabbed-content').bind('tabsselect', function(event, ui) {
                // Check if it's the "Sizes" tab...if so, we need to append the current product ID to the url.
                if (ui.index == 1) {
	                var scUrl = buildTabUrl(ui.index); //'productview_size_chart.asp?productid=' + catProducts[currProdIndex].id
	                $j('#tabbed-content').tabs('url', ui.index, scUrl );
                }
            });
        }
    },
    init: function(e) {
		$j('body').removeClass('nojs').addClass('js');
		// Initialize the product parade if it is valid for this product, also make sure we navigate to a sku, if one was chosen.
		if (productParadeDisplay == 1) {
			renderProductParadeSmall(0);
			currProdIndex = 0;
			pgInitialized = false;
			chooseProduct(currProdIndex, false);
			if (navigateToSku.length > 0) {
			    chooseExpandedParadeItem(returnCategoryProductIndex(navigateToSku));
			}
		}
		pgInitialized = true;
    }
  }
};

var LangDict = new Object();
function FillLibrary(loc) {
    $j.ajax({
        type: "GET",
        url: loc,
        dataType: "xml",
        success: function(xml) {
            $j("item", xml).each(function() {
                LangDict[$j(this).attr("key")] = $j(this).text();    
            });
        }
    });
}

var dr = $j(document).ready(function() {
    FillLibrary(translation_path);
    Site.Common.init();
    Site.Common.tabs('#tabbed-content');
    $j('#expanded-products-toggler').click(function() {
        $j('div.product-slideshow > ul.product-thumbnails').fadeToggle();
        $j('div.expanded-products').fadeToggle();
        $j(this).children('span').text($j(this).children('span').text() == LangDict["ProductViewAll"] ? LangDict["ProductCloseExpanded"] : LangDict["ProductViewAll"]);
        return false;
    });

    // Send to friend items
    var to_name = $j("#to_name"),
		to_email = $j("#to_email"),
		from_name = $j("#from_name"),
		from_email = $j("#from_email"),
		your_message = $j("#your_message"),
		req_to_name = $j("#req_to_name"),
		req_to_email = $j("#req_to_email"),
		req_from_name = $j("#req_from_name"),
		req_from_email = $j("#req_from_email"),
		req_message = $j("#req_message"),
		valid_email_message = $j("#valid_email_message"),
		sendToFriend_processing = $j("#sendToFriend_processing"),
		allFields = $j([]).add(to_name).add(to_email).add(from_name).add(from_email).add(your_message),
		reqFields = $j([]).add(req_to_name).add(req_to_email).add(req_from_name).add(req_from_email).add(req_message).add(valid_email_message),
		tips = $j("#validateTips");

    allFields.each(function(element) {
        BindControl(element);
    });


    function TranslateButtons() {
        $j('button').each(function(i) {
            var text = $j(this).html();
            switch(text)
            {
            case 'Send To Friend':
              $j(this).html(LangDict["btnSendToFriend"]);
              break;
            case 'Cancel':
              $j(this).html(LangDict["stfCancel"]);
              break;
            case 'Close':
              $j(this).html(LangDict["stfClose"]);
              break;
            }
        });
    }

    // Wishlist specific items.
    var emailaddr = $j("#emailaddr"),
		password = $j("#password"),
		req_emailaddr = $j("#req_emailaddr"),
		req_password = $j("#req_password"),
		msgLogin = $j("#msgLogin"),
		msgLoginError = $j("#msgLoginError"),
		msgThankYou = $j("#msgThankYou"),
		form_wishlist = $j('#form_wishlist'),
		wl_req_message = $j("#wl_req_message"),
		wl_processing_login = $j("#wl_processing_login"),
		wl_processing_add = $j("#wl_processing_add"),
		wl_errorMessage = $j("#wl_errorMessage"),
		form_forgotpassword = $j("#form_forgotpassword"),
		wl_msg_forgotpassword = $j("#wl_msg_forgotpassword"),
		fp_emailaddr = $j("#fp_emailaddr"),
		req_fp_emailaddr = $j("#req_fp_emailaddr"),
		wl_processing_forgot_password = $j("#wl_processing_forgot_password"),
		wl_fp_success = $j("#wl_fp_success"),
		wl_fp_errorMessage = $j("#wl_fp_errorMessage"),
		wl_login_links = $j("#wl_login_links"),
		wl_fp_links = $j("#wl_fp_links");
    // Wishlist item collections.
    var allWishlistDialogItems = $j([]).add(emailaddr).add(password).add(msgLogin).add(msgLoginError).add(msgThankYou).add(form_wishlist),
	    allWishlistHideThankYou = $j([]).add(msgLogin).add(msgLoginError).add(form_wishlist),
	    wl_reqFields = $j([]).add(req_emailaddr).add(req_password).add(wl_req_message),
	    wl_login_form_items = $j([]).add(form_wishlist).add(msgLogin),
	    wl_fp_form_items = $j([]).add(form_forgotpassword).add(wl_msg_forgotpassword),
	    allThankYouItems = $j([]).add(msgThankYou);

    function BindControl(element) {
        $j(element).keypress(function(e) {
            if (e.which == 13) {
                return false;
            }

        })
    }

    function updateTips(t) {
        //$j(tips.text(t)).effect("highlight",{},1500);
    }

    function addToWishList() {
        // Call the webservice
        wl_processing_add.show();
        var webMethod = webservicesPath + 'FJInternalService.asmx/addCatalogProductToWishList';
        $j.ajax({
            type: "POST",
            url: webMethod,
            data: { "consumersid": +currentConsumerId, "productnumber": "'" + catProducts[currProdIndex].productnumber + "'" },
            contentType: "application/x-www-form-urlencoded",
            //dataType: "xml",
            success: function(msg) {
                wl_processing_add.hide();
                // Show "Thank You" screen, turn off other items.
                allWishlistHideThankYou.hide();
                msgThankYou.show();
                // Reset the buttons to show Close and MyAccount
                $j('#dialog-wishlist').dialog('option', 'buttons',
                                        {
                                            'My Account': function() {
                                                location.href = '/myaccount/';


                                            }, 'Close': function() {
                                                $j(this).dialog('close');
                                                var url = location.href.split("?", 1);
                                                url += "?c=" + catProducts[currProdIndex].category_id + "&s=" + catProducts[currProdIndex].productnumber;
                                                location.href = url;
                                            }
                                        });
            },
            error: function(e) {
                wl_processing_add.hide();
            }
        });
    }

    function checkLength(o, n, asterisk, min, max) {

        if (o.val().length > max || o.val().length < min) {
            asterisk.show();
            //o.addClass('ui-state-error');
            //updateTips("Length of " + n + " must be between "+min+" and "+max+".");
            //alert("Length of " + n + " must be between "+min+" and "+max+".");
            return false;
        } else {
            return true;
        }

    }


    function checkRegexp(o, asterisk, regexp, n) {

        if (!(regexp.test(o.val()))) {
            asterisk.show();
            valid_email_message.show();
            return false;
        } else {
            return true;
        }

    }

    $j("#dialog-send-to-friend").dialog({
        bgiframe: true,
        autoOpen: false,
        autoResize: true,
        modal: true,
        closeText: 'x',
        resizable: false
    });



    // When the send to friend is opened, we must reset it (in case they already used the form) and set up the buttons.
    $j('#dialog-send-to-friend').bind('dialogopen', function(event, ui) {
        $j('p').each(function() {
//            if ($j(this).html().substring(0,19) == 'There was a problem')
//                $j(this).hide();

        });
        $j("#sendToFriend_errorMessage").hide();
        valid_email_message.hide();
        $j("#msgSendToFriend_Success").hide();
        $j("#formSendToFriend").show();
        reqFields.hide();
        sendToFriend_processing.hide();
        $j('#dialog-send-to-friend').dialog('option', 'buttons',
                    {
                        'Send To Friend': function() {
                            reqFields.hide();
                            var bValid = true;
                            bValid = checkLength(from_name, "From Name", req_from_name, 1, 80) && bValid;
                            bValid = checkLength(from_email, "From Email", req_from_email, 1, 80) && bValid;
                            bValid = checkLength(to_name, "To Name", req_to_name, 1, 16) && bValid;
                            bValid = checkLength(to_email, "To Email", req_to_email, 1, 80) && bValid;



                            if (bValid) {
                                // From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
                                //moved into the IF statement to make sure that the email format is not checked if the required fields aren't filled.
                                bValid = checkRegexp(to_email, req_to_email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. ui@jquery.com") && bValid;
                                bValid = checkRegexp(from_email, req_from_email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. ui@jquery.com") && bValid;

                                //if the email format isn't correct, stop everythign and let the user know
                                if (!bValid)
                                    return false;

                                // Call the webservice to send the email
                                $j("#sendToFriend_processing").show();
                                $j("#formSendToFriend").hide();
                                valid_email_message.hide();
                                var subject = LangDict["sendToFriendSubject"];
                                var salutation = "";
                                // The url will be placed at the bottom of the email to a friend...should have category and productnumber on it, construct it from the current page.
                                var url = location.href.split("?", 1)
                                url += "?c=" + catProducts[currProdIndex].category_id + "&s=" + catProducts[currProdIndex].productnumber;
                                var sales_office_id = "1";
                                var webMethod = webservicesPath + 'FJInternalService.asmx/sendPageToFriend';
                                $j.ajax({
                                    type: "POST",
                                    url: webMethod,
                                    data: { "to_email": "'" + to_email.val() + "'", "to_name": "'" + to_name.val() + "'",
                                        "from_email": "'" + from_email.val() + "'", "from_name": "'" + from_name.val() + "'",
                                        "message": "'" + your_message.val() + "'", "subject": "'" + subject + "'",
                                        "salutation": "'" + salutation + "'", "url": "'" + url + "'",
                                        "category_id": +catProducts[currProdIndex].category_id, "product_id": +catProducts[currProdIndex].id,
                                        "sales_office_id": +sales_office_id
                                    },
                                    contentType: "application/x-www-form-urlencoded",
                                    //dataType: "xml",
                                    success: function(msg) {
                                        //alert("Email sent");

                                        $j("#sendToFriend_processing").hide();
                                        $j("#msgSendToFriend_Success").show();
                                        $j("#formSendToFriend").hide();
                                        // Reset the buttons to show Close
                                        $j('#dialog-send-to-friend').dialog('option', 'buttons',
                                            { 'Close': function() { $j(this).dialog('close'); } });
                                        TranslateButtons();

                                    },
                                    error: function(e) {
                                        $j("#sendToFriend_processing").hide();
                                        $j("#sendToFriend_errorMessage").show();
                                        $j('#dialog-send-to-friend').dialog('option', 'buttons',
                                            { 'Close': function() { $j(this).dialog('close'); } });
                                        TranslateButtons();
                                    }
                                });
                                //$j(this).dialog('close');
                            }
                            else {
                                req_message.show();
                            }
                        },
                        Cancel: function() {
                            $j(this).dialog('close');
                        }
                    });
        TranslateButtons();

    });


    // When the wishlist is opened, we must handle some of the options
    $j('#dialog-wishlist').bind('dialogopen', function(event, ui) {
        wl_fp_form_items.hide();
        wl_errorMessage.hide();
        wl_reqFields.hide();
        form_wishlist.hide();
        wl_fp_success.hide();
        wl_login_links.hide();
        wl_fp_links.hide();
        // If the user is logged in, then simply add the item to the wishlist
        if (currentConsumerId.length > 0) {
            wl_processing_add.show();
            // Call the webservice
            var webMethod = webservicesPath + 'FJInternalService.asmx/addCatalogProductToWishList';
            $j.ajax({
                type: "POST",
                url: webMethod,
                data: { "consumersid": +currentConsumerId, "productnumber": "'" + catProducts[currProdIndex].productnumber + "'" },
                contentType: "application/x-www-form-urlencoded",
                //dataType: "xml",
                success: function(msg) {
                    wl_processing_add.hide();
                    // Show "Thank You" screen, turn off other items.
                    allWishlistHideThankYou.hide();
                    msgThankYou.show();
                    // Reset the buttons to show Close and MyAccount
                    $j('#dialog-wishlist').dialog('option', 'buttons',
                                        {
                                            'My Account': function() {
                                                location.href = '/myfootjoy/';
                                            }, 'Close': function() {
                                                $j(this).dialog('close');
                                            }
                                        });
                },
                error: function(e) {
                    wl_processing_add.hide();
                    wl_errorMessage.show();
                    //alert("Error");                   
                }
            });
        }
        else {
            // Show the login form, hide other messages.
            setUpLoginForm();
        }
    });

    function setUpLoginForm() {
        form_wishlist.show();
        msgThankYou.hide();
        msgLoginError.hide();
        wl_login_links.show();
        wl_fp_links.hide();
        $j('#dialog-wishlist').dialog('option', 'buttons',
                    {
                        'Login': function() {
                            msgLoginError.hide();
                            wl_reqFields.hide();
                            var bValid = true;
                            bValid = checkLength(emailaddr, "Email Address", req_emailaddr, 1, 80) && bValid;
                            bValid = checkLength(password, "Password", req_password, 1, 80) && bValid;

                            if (bValid) {
                                msgLogin.hide();
                                form_wishlist.hide();
                                wl_processing_login.show();
                                wl_login_links.hide();
                                var webMethod = 'FJLogin.asp';
                                $j.ajax({
                                    type: "POST",
                                    url: webMethod,
                                    data: { "emailaddr": "'" + emailaddr.val() + "'", "password": "'" + password.val() + "'" },
                                    contentType: "application/x-www-form-urlencoded",
                                    //dataType: "xml",
                                    success: function(xml) {
                                        wl_processing_login.hide();
                                        $j(xml).find("Consumer").each(function() {
                                            var consumer = $j(this);
                                            // Was it valid?
                                            if ($j("loginvalid", consumer).text() == "true") {
                                                // Set the local variables with session info.
                                                currentConsumerId = $j("id", consumer).text();
                                                // Show the proper messaging and set appropriate variables.
                                                addToWishList();
                                                allWishlistHideThankYou.hide();
                                                allThankYouItems.show();
                                            } else {
                                                // Show the "login failed" message.
                                                msgLogin.show();
                                                form_wishlist.show();
                                                msgLoginError.show();
                                                wl_login_links.show();
                                            }
                                        });

                                        /* jQuery("/Consumer/", xml).each(function(){
                                        alert($j("id", this).text());
                                        });*/
                                    },
                                    error: function(e) {
                                        wl_processing_login.hide();
                                        wl_errorMessage.show();
                                        wl_login_links.show();
                                        //alert("Error");                   
                                    }
                                });
                            }
                            else {
                                wl_req_message.show();
                            }

                        }, Cancel: function() {
                            $j(this).dialog('close');
                        }
                    });
    }

    $j("#dialog-wishlist").dialog({
        bgiframe: true,
        autoOpen: false,
        autoResize: true,
        modal: true,
        resizable: false,
        closeText: 'x'
    });


    $j('#wl_login_link').click(function() {
        wl_fp_form_items.hide();
        wl_errorMessage.hide();
        wl_reqFields.hide();
        form_wishlist.hide();
        wl_fp_success.hide();
        wl_login_links.hide();
        wl_fp_links.hide();
        setUpLoginForm();
        return false;
    });

    $j('#wl_forgot_password_link').click(function() {
        wl_login_form_items.hide();
        wl_msg_forgotpassword.show();
        form_forgotpassword.show();
        wl_login_links.hide();
        $j('#dialog-wishlist').dialog('option', 'buttons',
                    {
                        'Email My Password': function() {
                            wl_reqFields.hide();
                            var bValid = true;
                            bValid = checkLength(fp_emailaddr, "Email Address", req_fp_emailaddr, 1, 80) && bValid;

                            if (bValid) {
                                wl_msg_forgotpassword.hide();
                                form_forgotpassword.hide();
                                wl_processing_forgot_password.show();
                                var webMethod = 'FJPass.asp';
                                $j.ajax({
                                    type: "POST",
                                    url: webMethod,
                                    data: { "emailaddr": "'" + fp_emailaddr.val() + "'" },
                                    contentType: "application/x-www-form-urlencoded",
                                    //dataType: "xml",
                                    success: function(xml) {
                                        wl_processing_forgot_password.hide();
                                        $j(xml).find("ForgotPassword").each(function() {
                                            var fp = $j(this);
                                            var fp_success = $j("success", fp).text();
                                            var fp_message = $j("message", fp).text();
                                            wl_fp_success.text(fp_message);
                                            wl_fp_success.show();

                                            if (fp_success = "true") {
                                                // If success is true, the password has been mailed...show close button and link to login form
                                                wl_fp_links.show();
                                            } else {
                                                // If false, the password has not been mailed...show close button and link to FP form
                                                wl_login_links.show();
                                            }
                                            $j('#dialog-wishlist').dialog('option', 'buttons',
                                                    { 'Close': function() { $j(this).dialog('close'); } });
                                            wl_fp_success.text(fp_message);
                                            wl_fp_success.show();
                                        });

                                    },
                                    error: function(e) {
                                        wl_processing_forgot_password.hide();
                                        wl_fp_errorMessage.show();
                                    }
                                });
                            }
                            else {
                                wl_req_message.show();
                            }

                        }, Cancel: function() {
                            $j(this).dialog('close');
                        }
                    });


        return false;

    });



    $j('#send-to-friend').click(function() {
        $j('#dialog-send-to-friend').dialog('open');
    })
	    .hover(
		    function() {
		        $j(this).addClass("ui-state-hover");
		    },
		    function() {
		        $j(this).removeClass("ui-state-hover");
		    }
	    ).mousedown(function() {
	        $j(this).addClass("ui-state-active");
	    })
	    .mouseup(function() {
	        $j(this).removeClass("ui-state-active");
	    });

    $j('#wishlist').click(function() {
        $j('#dialog-wishlist').dialog('open');
    })
	    .hover(
		    function() {
		        $j(this).addClass("ui-state-hover");
		    },
		    function() {
		        $j(this).removeClass("ui-state-hover");
		    }
	    ).mousedown(function() {
	        $j(this).addClass("ui-state-active");
	    })
	    .mouseup(function() {
	        $j(this).removeClass("ui-state-active");
	    });


    //******************************************************************
    // PUD Functions
    //******************************************************************
    // Only intialize PUD functions if the PUD form exists for this page
    if (blnShowPudForm) {
        // Form items
        var pud_size = $j("#pud_size"),
            pud_req_size = $j("#pud_req_size"),
            pud_processing_add = $j("#pud_processing_add"),
            pud_error_message = $j("#pud_error_message"),
            pud_stock_error = $j("#pud_stock_error"),
            pud_price_error = $j("#pud_price_error"),
            pud_add_success = $j("#pud_add_success"),
            pud_price = $j("#pud_price"),
            pud_price_display = $j("#pud_price_display"),
            form_pud = $j("#form_pud"),
            pud_processing_price = $j("#pud_processing_price");
        // Collections
        var pud_messaging = $j([]).add(pud_error_message).add(pud_processing_add).add(pud_processing_price).add(pud_req_size).add(pud_add_success).add(pud_stock_error).add(pud_price_error);


        $j("#dialog-pud").dialog({
            bgiframe: true,
            autoOpen: false,
            autoResize: true,
            modal: false,
            closeText: 'x',
            resizable: false,
            minHeight: 90,
            height: 90,
            width: 175
        });
        $j('#pud').click(function() {
            $j('#dialog-pud').dialog('open');
        })
	        .hover(
		        function() {
		            $j(this).addClass("ui-state-hover");
		        },
		        function() {
		            $j(this).removeClass("ui-state-hover");
		        }
	        ).mousedown(function() {
	            $j(this).addClass("ui-state-active");
	        })
	        .mouseup(function() {
	            $j(this).removeClass("ui-state-active");
	        });

        $j('#dialog-pud').bind('dialogopen', function(event, ui) {
            // Initialize items
            pud_messaging.hide();
            pud_price_display.hide();
            form_pud.hide();
            getStylePrice(catProducts[currProdIndex].productnumber);
            $j(this).css({
                minHeight: 90,
                height: 90,
                width: 175
            });
            $j(this).parent().css({
                minHeight: 140,
                height: 140,
                width: 175
            });

            $j('#dialog-pud').dialog('option', 'buttons',
                        {
                            'Add': function() {
                                if (pud_size.val() == "0") {
                                    pud_req_size.show();
                                } else {
                                    pud_req_size.hide();
                                    form_pud.hide();
                                    pud_processing_add.show();
                                    pud_price_display.hide();
                                    var sz = new Array();
                                    sz = pud_size.val().split('-');
                                    var webMethod = webservicesPath + 'PUD.asmx/addToCart';
                                    $j.ajax({
                                        type: "POST",
                                        url: webMethod,
                                        data: {
                                            "uid": "'" + currentSessionId + "'",
                                            "sales_office_id": 1,
                                            "product_id": catProducts[currProdIndex].id,
                                            "productnumber": "'" + catProducts[currProdIndex].productnumber + "'",
                                            "ecomcodes": "'" + sz[2] + "'",
                                            "qty": 1,
                                            "size_id": sz[0],
                                            "width_id": sz[1],
                                            "msrp": +pud_style_price,
                                            "ship_method_id": 5
                                        },
                                        contentType: "application/x-www-form-urlencoded",
                                        //dataType: "xml",
                                        success: function(msg) {
                                            var msgSuccess = $j(msg).find("ServiceCallResult").find("success").text();
                                            var msgMsg = $j(msg).find("ServiceCallResult").find("message").text();
                                            pud_processing_add.hide();
                                            if (msgSuccess == "true") {
                                                pud_add_success.show();
                                                // Reset the buttons to show View Cart and OK
                                                $j('#dialog-pud').dialog('option', 'buttons',
                                                        {
                                                            'View Cart': function() {
                                                                location.href = '/pud_cart/default.asp';
                                                            }, 'OK': function() {
                                                                $j(this).dialog('close');
                                                                var url = location.href.split("?", 1);
                                                                url += "?c=" + catProducts[currProdIndex].category_id + "&s=" + catProducts[currProdIndex].productnumber;
                                                                location.href = url;
                                                            }
                                                        });
                                            } else {
                                                form_pud.show();
                                                pud_price_display.show();
                                                pud_stock_error.show();
                                                $j('#dialog-pud').dialog('option', 'buttons',
                                                        {
                                                            'OK': function() {
                                                                $j(this).dialog('close');
                                                            }
                                                        });
                                            }
                                        },
                                        error: function(e) {
                                            pud_processing_add.hide();
                                            pud_error_message.show();
                                            //alert("Error");                   
                                        }
                                    });

                                }



                            }, Cancel: function() {
                                $j(this).dialog('close');
                            }
                        });

        });
    }

    function getStylePrice(productnumber) {
        pud_processing_price.show();
        var webMethod = webservicesPath + 'PUD.asmx/getStylePrice';
        $j.ajax({
            type: "POST",
            url: webMethod,
            data: {
                "productnumber": "'" + productnumber + "'"
            },
            contentType: "application/x-www-form-urlencoded",
            //dataType: "xml",
            success: function(msg) {
                var msgSuccess = $j(msg).find("ServiceCallResult").find("success").text();
                var msgMsg = $j(msg).find("ServiceCallResult").find("message").text();
                if (msgSuccess == "true") {
                    pud_price.text(formatCurrency(msgMsg));
                    pud_style_price = msgMsg;

                    //pud_price_display.show();
                    //form_pud.show();

                } else {
                    //form_pud.show();
                    //pud_price.shows();
                    pud_price_error.show();
                }
                // Now, load the sizes..nested Webservice call
                var webMethod = 'PUD_Size.asp';
                $j.ajax({
                    type: "POST",
                    url: webMethod,
                    data: {
                        "sku": "'" + productnumber + "'",
                        "type": "'" + productTypeKey + "'"
                    },
                    contentType: "application/x-www-form-urlencoded",
                    //dataType: "xml",
                    success: function(msg) {
                        pud_processing_price.hide();
                        var pud_size = $j("#pud_size");
                        pud_size.children().remove();
                        pud_size.append("<option value='0' selected>--" + LangDict["please select one"] + "--</option>");
                        // Now loop though the sizes, and build the options.
                        $j(msg).find("SizeWidth").each(function() {
                            var idV = $j(this).find("idValue").text();
                            var disV = $j(this).find("displayValue").text();
                            pud_size.append("<option value='" + idV + "' selected>" + disV + "</option>");
                        });
                        pud_price_display.show();
                        form_pud.show();
                        pud_price.text(formatCurrency(msgMsg));
                        pud_style_price = msgMsg;

                    },
                    error: function(e) {
                        pud_processing_price.hide();
                        pud_error_message.show();
                        //alert("Error");                   
                    }
                });
            },
            error: function(e) {
                pud_processing_price.hide();
                pud_error_message.show();
                //alert("Error");                   
            }
        });
    }

    function formatCurrency(num) {
        num = num.toString().replace(/\$|\,/g, '');
        if (isNaN(num))
            num = "0";
        sign = (num == (num = Math.abs(num)));
        num = Math.floor(num * 100 + 0.50000000001);
        cents = num % 100;
        num = Math.floor(num / 100).toString();
        if (cents < 10)
            cents = "0" + cents;
        for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
            num = num.substring(0, num.length - (4 * i + 3)) + ',' +
        num.substring(num.length - (4 * i + 3));
        return (((sign) ? '' : '-') + '$' + num + '.' + cents);
    }


});

 
