


jQuery(document).ready(function(){
    //account sections
    // open all tabs by default
    jQuery('.account-page .section h2').each(function(key, value){
        jQuery(value).next().slideDown();
        jQuery(value).addClass('open');
    });
    jQuery('.account-page .section h2').click(function(){
            if ( !jQuery(this).next().is(':visible')){
                    jQuery(this).next().slideDown();
                    jQuery(this).addClass('open');
            } else {
                    jQuery(this).next().slideUp();
                    jQuery(this).removeClass('open');
            }

            return false;
    });


    //apply fancy checkboxes
    jQuery('.input input[type=checkbox]').fancyCheckbox({'on':'checkbox-checked.png', 'off':'checkbox.jpg'});
    jQuery('.input input[type=radio]').fancyCheckbox({'on':'radio-checked.png', 'off':'radio.png'});

    //activate fancy dropdown input
    //fancyDropDown('orderDropDown')
    
    //additional address handling
    var addAddressCount = jQuery('#address-container .account-box').length;

    function validateAdditionalAddresses(newId){
        resetStatusMsg();
        
        if (jQuery('#' + newId + ' input[name="firstname"]').val() == '') {
            showErrorMsg("Please fill First name.",jQuery("#"+newId));
            return false;
        }
        
        if (jQuery('#' + newId + ' input[name="lastname"]').val() == '') {
            showErrorMsg("Please fill Last name.",jQuery("#"+newId));
            return false;
        }
        
        if (jQuery('#' + newId + ' input[name="address1"]').val() == '') {
            showErrorMsg("Please fill address 1.",jQuery("#"+newId));
            return false;
        }
        
        if (jQuery('#' + newId + ' input[name="city"]').val() == '') {
            showErrorMsg("Please fill city.",jQuery("#"+newId));
            return false;
        }
        
        
        var parts = newId.split("_");
        var id = parts[1];

        if (jQuery('#' + newId + ' #region_id_new_'+id).val() == '') {
            showErrorMsg("Please Select region/state.",jQuery("#"+newId));
            return false;
        }
        
        if (jQuery('#' + newId + ' input[name="postcode"]').val() == '') {
            showErrorMsg("Please fill Postal code.",jQuery("#"+newId));
            return false;
        }
        
        if (jQuery('#' + newId + ' input[name="postcode"]').val() != '' && ( !isValidPostalCode(jQuery('#' + newId + ' input[name="postcode"]').val()) && jQuery('#country_new_'+id).val()=="US" )) {
            showErrorMsg("Please use a correct US Postal code.",jQuery("#"+newId));
            return false;
        }
        
        if (jQuery('#' + newId + ' input[name="postcode"]').val() != '' && ( !isValidPostalCode(jQuery('#' + newId + ' input[name="postcode"]').val(),"CA") && jQuery('#country_new_'+id).val()=="CA" )) {
            showErrorMsg("Please use a correct Canadian Postal code.",jQuery("#"+newId));
            return false;
        }

        if (jQuery('#' + newId + ' input[name="telephone"]').val() == '') {
            showErrorMsg("Please fill Additional Phone.",jQuery("#"+newId));
            return false;
        }

        if (jQuery('#' + newId + ' input[name="telephone"]').val() != '' && !/(^\d{10}$)|(^\d{3}-\d{3}-\d{4}$)/.test(jQuery('#' + newId + ' input[name="telephone"]').val())) {
            showErrorMsg("Please enter a valid phone number in the format of XXX-XXX-XXXX.",jQuery("#"+newId));
            return false;
        }

        return true;
    }

    function copyAddressBlock(){
        var newAdd = jQuery('#fakeAddress').clone().appendTo('#address-container');

        addAddressCount = jQuery('#address-container .account-box').length;
        newAdd.attr('id', 'addaddress_' + (addAddressCount));
        newId = 'addaddress_' + (addAddressCount);
        newAdd.removeClass('fake');
        
        jQuery('#' + newId + ' select[name="country_new"]').attr('id', 'country_new_' + (addAddressCount));
        jQuery('#' + newId + ' select[name="region_id_new"]').attr('id', 'region_id_new_' + (addAddressCount));
        jQuery('#' + newId + ' #regHolder_new').attr('id', 'regHolder_new_' + (addAddressCount));
        jQuery('#' + newId + ' #buttonSubmit').attr('id', 'button_new_' + (addAddressCount));
        //var id=$(this).attr('id').split('_').[1];
        
        jQuery('#button_new_' + (addAddressCount)).live('click',function(){
                        jQuery(this).addClass('btnWait');
                        if(!validateAdditionalAddresses(newId)){
                            jQuery(this).removeClass('btnWait');
                            return;
                        }
        	   	jQuery.ajax({
        	        		type: "POST",
                                        dataType: "json",
        	        		url: siteUrl + 'INPINK/account/addaditionaladdress/',
        	        		data: ({
        	        			   firstname: jQuery('#' + newId + ' input[name="firstname"]').val(),
        	        			   address_label: jQuery('#' + newId + ' input[name="address_label"]').val(),
        	        			   lastname: jQuery('#' + newId + ' input[name="firstname"]').val(),
        	        			   street: {
        	        				   0:jQuery('#' + newId + ' input[name="address1"]').val(),
        	        				   1:jQuery('#' + newId + ' input[name="address2"]').val()
        	        				},
        	        			   city: jQuery('#' + newId + ' input[name="city"]').val(),
        	        			   region_id: jQuery('#' + newId + ' select[name="region_id_new"]').val(),
        	        			   country_id: jQuery('#' + newId + ' select[name="country_new"]').val(),
        	        			   postcode: jQuery('#' + newId + ' input[name="postcode"]').val(),
        	        			   telephone: jQuery('#' + newId + ' input[name="telephone"]').val(),
                                                   is_po_box: (jQuery('#poBox3').attr('checked'))?"on":"off"
        	        		 }),
        	          success: function(data){
        	        	  var response = data;
                                  if (response.success == true) {
                                      
                                            jQuery('#addaddress_' + addAddressCount).attr('id', 'addaddress_' + response.id);
                                            
                                            showSuccessMsg("ADDITIONAL ADDRESSS successfully updated.", jQuery("#addaddress_"+response.id));
                                            jQuery('#' + newId + ' input[name="address_id"]').attr('id', 'address_id_' + response.id);
                                            jQuery('#' + newId + ' input[name="address_id"]').attr('value', response.id);
                                            jQuery('#' + newId + ' input[name="address_label"]').attr('id', 'address_label' + response.id);
                                            jQuery('#' + newId + ' input[name="firstname"]').attr('id', 'firstname_' + response.id);
                                            jQuery('#' + newId + ' input[name="lastname"]').attr('id', 'lastname_' + response.id);
                                            jQuery('#' + newId + ' input[name="address1"]').attr('id', 'address1_' + response.id);
                                            jQuery('#' + newId + ' input[name="address2"]').attr('id', 'address2_' + response.id);
                                            jQuery('#' + newId + ' input[name="city"]').attr('id', 'city_' + response.id);
                                            jQuery('#' + newId + ' select[name="country_new"]').attr('id', 'country_' + response.id);
                                            jQuery('#' + newId + ' select[name="region_id_new"]').attr('id', 'region_id_' + response.id);
                                            jQuery('#' + newId + ' input[name="postcode"]').attr('id', 'postcode_' + response.id);
                                            jQuery('#' + newId + ' input[name="telephone"]').attr('id', 'telephone_' + response.id);
                                            
                                            jQuery('#button_new_' + (addAddressCount)).attr('id', 'buttonSubmit_' + response.id);

                                            jQuery('#buttonSubmit_' + response.id).removeClass('btnWait');
                                            jQuery('#buttonSubmit_' + response.id).live('click',function(){
                                                    //var fctName = 'updateAditionalAddress' + response.id + '();';
                                                    //eval(fctName);
                                                    updateAditionalAddress(response.id);
                                            });
                                  }
                                  else {
                                            showErrorMsg("There was an error while trying to update ADDITIONAL ADDRESSS.", jQuery("#"+newId));
                                  }
                                  
                                 // jQuery(this).removeClass('btnWait');
        	        }
        	     });

           
        });
        
        //add US regions
	var s = jQuery('#region_id_new_' + (addAddressCount));
        jQuery.each(countryRegions['US'], function(i, item){
            op = jQuery('<option value="'+ i +'">'+ item.name +'</option>');
            op.appendTo(s);
            //jQuery('.chkRegion').selectbox();
        });
        
        jQuery('#country_new_' + (addAddressCount)).selectbox({
            effect: "fade",
            optionPosition: 24,
            bottomElem: true,
            classHolder:"additionalAddressSelector",
            onChange: function(value, inst){
            	
                //visually select the clicked item
                jQuery('.sbOptions a[class=selected]').removeClass('selected');
                jQuery('.sbOptions a[rel='+ value +']').addClass('selected');
                
                regionSelector("regHolder_new_" + addAddressCount,"region_id_new_" + addAddressCount,"region_id_new",value,'',"orderDown","poBox3");
                
                //var id=$(this).attr('id').split('_')[2];
                //fill the region dropdown
                /*
                if(value != -1){
                    var s = jQuery('<select class="validate-select orderDropDown" id="region_id_new_'+ addAddressCount +'" name="region_id_new">');
                    op = jQuery('<option value="-1">Select '+(value == 'US' ? 'state' : 'region')+'</option>');
                    op.appendTo(s);
                    jQuery.each(countryRegions[value], function(i, item){
                        op = jQuery('<option value="'+ i +'">'+ item.name +'</option>');
                        op.appendTo(s);
                        //jQuery('.chkRegion').selectbox();
                    });
                    jQuery('#regHolder_new_'+addAddressCount).html(s); 
                    s.selectbox({classHolder:"additionalAddressSelector",bottomElem: true});
                    
                }
                */
            }
        });
        
        jQuery("#poBox3").bind('check', function(){
            var currentCountrySelected = jQuery("#country_new_" + addAddressCount).val();
            var currentRegionSelected = jQuery("#region_id_new_" + addAddressCount).val();
            regionSelector("regHolder_new_" + addAddressCount,"region_id_new_" + addAddressCount,"region_id_new",currentCountrySelected,currentRegionSelected,"orderDown","poBox3");
           // removePoBoxRegions('regHolder2','<?php echo $shipping_address['country_id']?>','<?php echo $shipping_address['region_id']?>','check','test',"region_id","s_region_id",1)
        });

        jQuery('#poBox3').bind('uncheck', function(){
            var currentCountrySelected = jQuery("#country_new_" + addAddressCount).val();
            var currentRegionSelected = jQuery("#region_id_new_" + addAddressCount).val();
            regionSelector("regHolder_new_" + addAddressCount,"region_id_new_" + addAddressCount,"region_id_new",currentCountrySelected,currentRegionSelected,"orderDown","poBox3");
          //  removePoBoxRegions('regHolder2','<?php echo $shipping_address['country_id']?>','<?php echo $shipping_address['region_id']?>','uncheck','test',"region_id","s_region_id",1,1)
        });
        
        
        //region creator
        regionSelector("regHolder_new_" + addAddressCount,"region_id_new_" + addAddressCount,"region_id_new",'US','',"orderDown","poBox3");
        /*
        jQuery('#region_id_new_' + (addAddressCount)).selectbox({
            effect: "fade",
            optionPosition: 24,
            bottomElem: true,
            classHolder:"additionalAddressSelector",
            onChange: function(value, inst){
                //visually select the clicked item
                jQuery('.sbOptions a[class=selected]').removeClass('selected');
                jQuery('.sbOptions a[rel='+ value +']').addClass('selected');
            }
        });
        */
        //scroll to new address
        jQuery('html, body').animate({scrollTop: jQuery(document).height() - 150}, 500);
        
    }

    jQuery('.addAddress').live('click',function(){

        if(jQuery('#addaddress0').length > 0){
            jQuery('#addaddress0').css('display', 'none');
        }
        copyAddressBlock();
        addAddressCount = jQuery('#address-container .account-box').length;
        return false;
    });

    jQuery('.removeAddress').live('click',function(){
        jQuery(this).parents('.account-box').remove();
        addAddressCount = jQuery('#address-container .account-box').length;

        if(addAddressCount == 1){
            jQuery('#addaddress0').css('display', 'block');
        }
        
        if (typeof jQuery(this).parent().find('input[name="address_id"]').val() != 'undefined') {
        	
        	jQuery.ajax({
        		type: "POST",
        		url: siteUrl + 'INPINK/account/deleteaditionaladdress/',
        		data: ({
        			address_id: jQuery(this).parent().find('input[name="address_id"]').val()
        		}),
        		success: function(data){

          		}
        	});
        }
    

        return false;
    });
    
    //fancyDropDown('orderDropDown');
    
    //wishlist add to cart
    /* Deprecated, see addToCart() function from product.js
    jQuery('.wishlist-btn-cart').click(function(){
        var val = jQuery(this).parent('td').prev().find('input.micro-wishlist').val();
        var url = siteUrl + 'checkout/cart/add/product/?null=undefined&qty=' + (val > 0 ? val : 1);
        document.location.href = url;
        return false;
    });
    */
    
    //resize logic
    jQuery('body').bind('smallWindow', function(){
        jQuery('.content').css('width', '903px');
        jQuery('#main').css('width', '871px');
    });
    
    jQuery('body').bind('largeWindow', function(){
        jQuery('.content').css('width', '1196px');
        jQuery('#main').css('width', '1156px');
    });
    
})

