/* JavaScript File Area Digital CMS	(Area Digital 4.2)				*/
/* ad.form.js 														*/
/* Modified June 07th 2010									 		*/
/* http://www.areadigital.org/ 									    */

$(document).ready(function(){

// ------------------------------------------------ ajax form - corrects and submit a form with ajax ---------------------------------------------------------

	initSurvayForm();
    
	// ------------------------------- Survey form - Load ------------------------------------------
	
    function initSurvayForm(){
        $('dl.survey').each(function(){
            var r = $(this).find('input[type=radio]');
            var ex = $(this).find('.extra_info');
            var t = $(this).find('.extra_info_txt');
            var type = ex.attr('type'); 
            var is_checked = ex.attr('checked'); 
            if(type == 'radio' || type == 'checkbox'){
            
                if(is_checked){ t.show(); }else{ t.hide(); }

                ex.click(function(){
                    if($(this).attr('checked')){ t.show(); }else{ t.hide(); }
                })
                
                r.click(function(){
                    if(!$(this).hasClass('extra_info')){ t.hide(); }
                })
            
            }else{
                var s = $(this).find('select.extra_info');
                surveyHideExtra(s, t);
                s.change(function(){ surveyHideExtra(this , t); });
            }
        });
    }

    function surveyHideExtra(s, t){
        var n = $(s).attr('name');
        var o = $('select[name=' + n + '] option:selected');
        if(o.hasClass('extra_info')){ t.show(); }else{ t.hide(); }
    }
    
	// ------------------------------- Survey form - Submit ------------------------------------------
	
    $('.survey_ajax_form').ajaxForm({
        type: 'POST',
        beforeSubmit: function(a,f,o) {
            var form = f;
            var loader = $(form).find('div.loader');
            var feedback = $(form).find('div.feedback');
            var redirect_submit = $(form).find('input.redirect_submit');
            feedback.hide();
            loader.show();
        },
        success: function(data, a, form) {
            $(form).html($(data).html());
            initSurvayForm();
            var reply = $(data).find('.reply');
            if(reply.length){
                var redirect_submit = $(data).find('.redirect_submit');
                if (redirect_submit.length) {
                    setTimeout(function(){window.location = redirect_submit.val();},4000);
                }
                setTimeout(function(){ var reply = $(form).find('.reply'); reply.hide(); $(form).clearForm(); },4000);
            }
        }
    }); 
   
    // ----------------------------- Tip a Friend form -------------------------------------------
	
    var tip_a_friend_form = $('#tip_a_friend_form');
    var tip_a_friend_form_loader = $('#tip_a_friend_form .loader');
    var tip_a_friend_form_action = $('#tip_a_friend_form input[name=action]').val();
    tip_a_friend_form.ajaxForm({
        url: tip_a_friend_form_action,
        beforeSubmit: function(){
			var feedback = $('.feedback');
			if(feedback.length){
				feedback.hide();
			}
            tip_a_friend_form_loader.show();
        },
        success: function(data){
            tip_a_friend_form_loader.hide();
            var data_overlay = $(data).find('.overlay');
            var div = $(data).find('div');
            var data_warning = $(data).find('.warning');
            var overlay = $('.overlay');
            if (overlay.length) {
                overlay.remove();
            }
            if (data_overlay.length) {
                tip_a_friend_form.prepend(data_overlay.clone());
                if (!data_warning.length) {
					var thanks = tip_a_friend_form.find('.feedback');
					setTimeout(function(){ data_overlay.hide(); $(thanks).hide(); }, 10000);
                    tip_a_friend_form.clearForm();
                }
            }
        }
    });
    
    // ------------------------------- Feedback form ------------------------------------------
	
    var feedback_form = $('#feedback_form');
    var feedback_form_loader = $('#feedback_form .loader');
	var feedback_form_thanks = $('.feedback-form .thanks');
    var feedback_form_form_action = $('#feedback_form input[name=action]').val();
    feedback_form.ajaxForm({
        url: feedback_form_form_action,
        beforeSubmit: function(){
			var feedback = $('.feedback');
			if(feedback.length){
				feedback.hide();
			}
            feedback_form_loader.show();
			
        },
        success: function(data){
            feedback_form_loader.hide();
            var data_overlay = $(data).find('.overlay');
            var div = $(data).find('div');
            var data_warning = $(data).find('.warning');
            var overlay = $('.overlay');
            if (overlay.length) {
                overlay.remove();
            }
            if (data_overlay.length) {
                feedback_form.prepend(data_overlay.clone());
            }else if(!data_warning.length){
				var o = $('<div class="overlay"></div>');
				feedback_form_thanks.before(o);
				o.append(feedback_form_thanks.clone());
				var thanks = o.find('.thanks');
				feedback_form_thanks.hide();
				$(thanks).show();
				setTimeout(function(){ $(thanks).hide(); }, 10000);
				feedback_form.clearForm();
			}
        }
    });
	
    // ------------------------------- Ajax form - Submit ------------------------------------------
	
    $('.ajax_form').submit(function(e){
        e.preventDefault();
        var form = this;
		var redirect_submit = $(form).find('input.redirect_submit');
        var action = $(form).find('input[name=action]').val();
        var button = $(form).find('input.param');
        var button_name = button.attr('name');
        $(form).append('<input type="hidden" name="' + button_name + '"/>');
        var param = $(form).formSerialize();
        var loader = $(form).find('div.loader');
        loader.show();
        if($(form).hasClass('login')) {
            var isLoginForm = 1;
        }else{
            var isLoginForm = 0;
        }
        $.ajax({
            type: "POST",
            url: action,
            cache: false,
            data: param,
            success: function(data){
                data = jQuery.trim(data);
                var warning = $(data).find('div.warning');
                var data = $(data).find('div.form_content');
				$(data).find('input.param').replaceWith(button);
				$(data).find('input.redirect_submit').replaceWith(redirect_submit);
                if(isLoginForm == 1){
                    if(warning.length){
                         $(form).html($(data).html());
                    }else{
                        if(typeof redirect_submit != 'undefined' && !!redirect_submit){
                            setTimeout(function(){ window.location = redirect_submit.val(); }, 4000);
                        }
                    }
                }
				if(data.length){
					 $(form).html($(data).html());
				}else{
					if(typeof redirect_submit != 'undefined' && !!redirect_submit){
						window.location = redirect_submit.val();
					}
				}
               
            }
        });
    });
	
	// ----------------------------- Powecontent form - Submit ------------------------------------------
	
    $('.powercontent_ajax').submit(function(e){
        e.preventDefault();
        var form = this;
        var action = $(form).find('input[name=action]').val();
        var button = $(form).find('input.param');
		var reply = $(form).find('.reply');
		var redirect_submit = $(form).find('input.redirect_submit');
        var button_name = button.attr('name');
        $(form).append('<input type="hidden" name="' + button_name + '"/>');
        var param = $(form).formSerialize();
        var loader = $(form).find('div.loader');
		var feedback = $(form).find('.feedback:not(.loader, .reply)');
		if(feedback.length){
			feedback.remove();
		}
		loader.show();
        $.ajax({
            type: "POST",
            url: action,
            cache: false,
            data: param,
            success: function(data){
				loader.hide();
                data = jQuery.trim(data);
                var feedback = $(data).find('div.feedback');
				
				if(feedback.length){
					 $(form).prepend($(feedback).clone());
				}else{
                    reply.show();
					if(redirect_submit.length){
                        setTimeout(function(){ window.location = redirect_submit.val(); },4000);
					}else{
                        setTimeout(function(){ reply.hide(); $(form).clearForm(); },4000);
                    }
				}
            }
        });
    });
	
	// ------------------------------- Ajax form - Load ------------------------------------------
	
    $('form.load_form').each(function(){
        var form = this;
        var action = $(form).attr('action');
        var loader = $(form).find('div.loader');
		var button = $('.ajax_form').find('input.param');	
		var redirect_submit = $(form).find('input.redirect_submit');
        loader.show();
        $.ajax({
            type: "POST",
            url: action,
            cache: false,
            success: function(data){
                data = jQuery.trim(data);
                var data = $(data).find('div.form_content');
				$(data).find('input.param').replaceWith(button);
				$(data).find('input.redirect_submit').replaceWith(redirect_submit);
				$(form).html($(data).html());
            }
        });
    });
    
    // --------------------------------- Poll form ------------------------------------------------
	
    $('form[id^=poll]').each(function(){
        var form = $(this);
        var nodeId = form.find('input[name=ContentNodeID]');
        var contentResult = $('div#poll-result-' + nodeId.val());
        var showResultLink = form.find('a.show-result');
        var sendInfo = form.find('input[name=ActionCollectInformation]');
        var loader = $(form).find('div.loader');
        showResultLink.click(function(e){
            e.preventDefault();
            loader.show();
            $.ajax({
                type: "GET",
                url: $(this).attr('href'),
                cache: false,
                success: function(data){
                    data = jQuery.trim(data);
                    loader.hide();
                    form.hide();
                    var feedback = $(data).find('div.feedback');
                    var statistics = $(data).find('div.statistics');
                    var result = $(data).find('div.result');
                    contentResult.html($(result).html());
					contentResult.show();
                    if(feedback.length){
                        contentResult.before($(feedback).clone());
                    }
                    if(statistics.length){
                        contentResult.after($(statistics).clone());
                    }
                }
            });
        });
        sendInfo.click(function(e){
            e.preventDefault();
            loader.show();
            var param = $(form).formSerialize();
            $.ajax({
                type: "POST",
                url: form.attr('action'),
                cache: false,
                data: param,
                success: function(data){
                    data = jQuery.trim(data);
                    loader.hide();
                    form.hide();
                    var feedback = $(data).find('div.feedback');
                    var statistics = $(data).find('div.statistics');
                    var result = $(data).find('div.result');
                    contentResult.html($(result).html());
					contentResult.show();
                    if(feedback.length){
                        contentResult.before($(feedback).clone());
                    }
                    if(statistics.length){
                        contentResult.after($(statistics).clone());
                    }
                }
            });
        });
    });
	
// -----------------------------------------------------------------------------------------------------------------------------------------------------

});

