jQuery(document).ready( function() {
	jQuery('#head-navigation').frozAccordion();
	
	jQuery("a[rel^='prettyPhoto']").prettyPhoto({
		animationSpeed: 'normal', /* fast/slow/normal */
		padding: 30, /* padding for each side of the picture */
		opacity: 0.30, /* Value betwee 0 and 1 */
		showTitle: true, /* true/false */
		allowresize: true, /* true/false */
		counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
		theme: 'light_rounded', /* light_rounded / dark_rounded / light_square / dark_square / dark_blue_square */
		callback: function(){}
	});
	
	
	outputArray = new Array('.froz-card-preview > div > .company', 
                        '.froz-card-preview > div > .name', 
                        '.froz-card-preview > div > .title', 
                        '.froz-card-preview > div > .group-1 > .addr', 
                        '.froz-card-preview > div > .group-1 > div > .city', 
                        '.froz-card-preview > div > .group-1 > div > .state', 
                        '.froz-card-preview > div > .group-1 > div > .zip', 
                        '.froz-card-preview > div > .group-1 > .country', 
                        '.froz-card-preview > div > .group-2 > .web', 
                        '.froz-card-preview > div > .group-2 > .phone', 
                        '.froz-card-preview > div > .group-2 > .fax', 
                        '.froz-card-preview > .products');

	inputArray = new Array('#froz-submit-form > form > fieldset > ol > #form-company',
		                   '#froz-submit-form > form > fieldset > ol > #form-name',
		                   '#froz-submit-form > form > fieldset > ol > #form-title',
		                   '#froz-submit-form > form > fieldset > ol > #form-addr',
		                   '#froz-submit-form > form > fieldset > ol > #form-city',
		                   '#froz-submit-form > form > fieldset > ol > #form-state',
		                   '#froz-submit-form > form > fieldset > ol > #form-zip',
		                   '#froz-submit-form > form > fieldset > ol > #form-country',
		                   '#froz-submit-form > form > fieldset > ol > #form-web',
		                   '#froz-submit-form > form > fieldset > ol > #form-phone',
		                   '#froz-submit-form > form > fieldset > ol > #form-fax',
		                   '#froz-submit-form > form > fieldset > ol > #form-product');


	jQuery('.froz-card-preview-new').frozTextPreview({input:inputArray,
	                                                  output:outputArray,
	                                                  defaultDisplay: false});
	
	jQuery('#froz-submit-form > form > fieldset > ol > #form-city').keyup( function(){
	    if (jQuery('.froz-card-preview > div > .group-1 > div > .city').text() !== ''){
	        jQuery('.separator').text(', ');
	    } else {
	        jQuery('.separator').text('');
	    }
	})
	
	var cardsvalidate = function()
    {

        /**
         * @var string
         * @access private
         */
        var _cardsformel               = '#froz-submit-form form';


        /**
         * @var string
         * @access private
         */
        var _cardscompletetarget   = '.froz-card-preview-new';


        /**
         * @var DOM Element
         * @access private
         */
        var _loader                  = null;


        /**
         * @access private
         * @return void
         */
        var _setupLoader = function()
        {
            _loader = jQuery('<div id="ajax-loader"><img src="' + GLOBAL_BASE_URL + '/img/preloaders/1.gif" alt="loading..." /></div>')
                         .css({position:"relative", top:"1em"})
                         .appendTo(_cardsformel).hide();
            jQuery().ajaxStart(function() {
                _onSubmit();
            }).ajaxStop(function() {
                _onComplete();
            }).ajaxError(function(a, b, e) {
                throw e;
            });
        };


        
        /**
         * @access private
         * @return void
         */
        var _onSubmit = function()
        {
            _loader.show();
        };

        /**
         * @access private
         * @return void
         */
        var _onComplete = function()
        {
            _loader.hide();
        };

        return {

            
            /**
             * @access public
             * @return void
             */
            init:function() {

                _setupLoader();
                
                jQuery(_cardscompletetarget).css({display:'block'});
                
                jQuery(_cardsformel).ajaxForm({
                    dataType:  'json',
                    success: function(data) {
                        
                        if(data.success === true) {
                            jQuery(_cardsformel).hide('slow');
                            jQuery(_cardsformel).parent().append(data.message);
                            jQuery.scrollTo(_cardscompletetarget, 800);
                            return false;
                        }
                    
                        var content          = data.content;
                        var content_c        = content.length;
                        var errorFormatStart = '<ul class="errors">';
                        var errorFormatEnd   = '</ul>';

                        jQuery(_cardsformel + ' ul.errors').remove();

                        if(content_c > 0) {
                            jQuery('.captcha-img').replaceWith(data.captchaImg);
                            jQuery('#cards_captcha').val('');
                        } else {
                            return true;
                        }
                        
                        for(var item in content) {

                            var errors            = content[item].value;
                            var errors_c          = errors.length;
                            var errorFormatted    = '';

                            errorFormatted        += errorFormatStart;

                            for(var e in errors) {
                                errorFormatted += '<li>' + errors[e] + '</li>';
                            }

                            errorFormatted        += errorFormatEnd;

                            var inputs   = jQuery(':input[name=' + content[item].element + ']');
                            var inputs_c = inputs.length;

                            if(inputs_c == 1) {
                                jQuery(inputs).after(errorFormatted);
                            } else if(inputs_c > 1) {
                                // Item can be radio or checkbox
                                inputs.parent().parent().append(errorFormatted);
                            } else {
                            }
            
                        }

                    }
                });
            
                
            }
        
        };


    }();

    cardsvalidate.init();

} );





