﻿
//  Functionality for displaying popup overlays

$(function(){
    $('.pulldown').hide();
    

    $('.pulldown-handle').click(function(){
        var drawer = '#' + this.parentNode.id + '-pulldown';
        $('.pulldown:visible').slideUp(200); //close any open drawers
        $('div.arrow').removeClass('arrowon');
        $('div.title').removeClass('red');
        //if this drawer is closed, open it. if it was open, don't reopen it.
        if ($(drawer + ':visible').length == 0) {
			$(drawer).slideDown(200);
		    var arrow_img = '#' + this.parentNode.id + '-arrow';
		    var title = '#' + this.parentNode.id + '-title';
		    $(arrow_img).addClass('arrowon');
		    $(title).addClass('red');
		}
		
       return false; 
    });
      

    $('img.closebutton').click(function() {
        var holder = '#' + this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.id;
        $(holder).fadeOut(200);
    });
    
    
    var config = {
        sensitivity:3,
        interval:200,
        over:function() {
            var drawer = '#' + this.id + 'Popup';
            $(drawer).fadeIn(200);
        }, 
        out:function() {
            var drawer = '#' + this.id + 'Popup';
            $(drawer).fadeOut(200);
        },
        timeout: 500
    };
    
    $('.popupover-handle').hoverIntent(config);
    $('.popupclick-handle').click(function() {
        var drawer = '#' + this.id + 'Popup';
        $('.popup').fadeOut(100);
        var offset = $(this).position();
        var width = $(this).width();
                
        $(drawer).css({left:(offset.left - $(drawer).width() + 100 + (width/2)), top:(offset.top + 10)});
        $(drawer).fadeIn(200);
    });
    
    $('.popuplink').click(function() {
        var popupwin = $($(this).attr('href'));
        
        $('.popup').fadeOut(100);
        if(popupwin.is(':visible')) {
            popupwin.fadeOut(200);
        } else {
            popupwin.fadeIn(200);
        }
    });
    
    $('.taf-handle').click(function() {
        var drawer = '#TAFPopup';
        $('.popup').fadeOut(100);
        var offset = $(this).position();
        var width = $(this).width();
        
        $(drawer).css({left:(offset.left - 340 + (width/2)), top:(offset.top + 10)});
        $(drawer).fadeIn(200);
        
    });
    
    $('.cvv-handle').click(function() {
        var drawer = '#CVVPopup';
        $('.popup').fadeOut(100);
        var offset = $(this).position();
        var width = $(this).width();
        
        $(drawer).css({left:(offset.left - 340 + (width/2)), top:(offset.top + 10)});
        $(drawer).fadeIn(200);
        
    });
    
    $('.rollover').hover(function() {
        this.src = this.src.replace(/.gif/, "_on.gif");
    }, function() {
        this.src = this.src.replace(/_on/, "");
    });
    
    $('.rollover').click(function() {
        this.src = this.src.replace(/_on/, "");
    });
    
    $('.resetTAF').click(function() {
        $('#TAFContent').show(400);
        $('#TAFPanel').hide(200);
        $('#tafForm')[0].reset();
    });
    
    $('#ModalWindow').jqm({
        ajax:'@href',
        trigger:'a.showmodal'
    });
    
});

// on document ready search for forms and prepare validation

$(document).ready(function() {
	
    init();
	var forms = $('form.jquery_form').get();
	
	for(var i = 0; i < forms.length; i++) {	
	    $('#' + forms[i].id + ' .jquery_submit').click(function() {
	    
	        var formid = this.parentNode.parentNode.parentNode.id;
	        var container = $('#' + formid + '-container');
	        var validator = $('#' + formid).validate({
	    	    errorContainer: container,
	    	    errorLabelContainer: $("ul", container),
	    	    wrapper: 'li',
	    	    meta: "validate"	        
	        });
	        if(validator.form()) {
	            eval($('#' + this.parentNode.parentNode.parentNode.id + ' .function').attr('for') + '("' + formid + '")');
	        }
	    });
	}
	
	$('.rollover').each(function() {
	    this.style.display = 'inline';
	});
    
});


var Event = {
	add: function(obj,type,fn) {
		if (obj.attachEvent) {
			obj['e'+type+fn] = fn;
			obj[type+fn] = function() { obj['e'+type+fn](window.event); }
			obj.attachEvent('on'+type,obj[type+fn]);
		} else
		obj.addEventListener(type,fn,false);
	}
}

var ourForm;

function init() {
    var form_array = document.getElementsByTagName('form');
    for(var i = 0; i < form_array.length; i++) {
        var required = form_array[i].elements['required'];
        if(required) {
            ourForm = form_array[i];       
            if(form_array[i].Submit) {               
                Event.add(form_array[i].Submit, 'click', checkValues);
            }
        }
    }   
}

function checkValues(evt) {
    var required = ourForm.elements['required'];
    var fields = required.value.split('|');
    var errors = '';
    
    for(var j = 0; j < fields.length; j++) {
        if(fields[j].length > 0) {
            var field = document.getElementsByName(fields[j]);
            
            var hasValue = false;
            if(field) {
                for(var k = 0; k < field.length; k++) {
                    
                    if(field[k].selectedIndex != null) {
                        if(field[k].options[field[k].selectedIndex].value.length > 0 && field[k].options[field[k].selectedIndex].value != '--') {
                            hasValue = true;
                        }
                    } else if(field[k].value.length > 0) {
                        hasValue = true;
                    }
                }                  
            }
            
            if(!hasValue) {
                errors += fields[j] + ' is required.\r\n';            
            }
        }
    }
    if(errors.length > 0) {
        alert(errors);
    } else {
        ourForm.submit();
    }
    
    return false;
}

function submitTAF(formid) {
    
    var ourForm = $('#' + formid);
    
    var inputs = [];

    $(':input', ourForm).each(function() {
        inputs.push('"' + this.name + '":"' + escape(this.value) + '"');
    });
    var json_data = '{' + inputs.join(',') + '}';
    
    $.ajax({
        dataType: "json",
        type: "POST",
        url: "/ajaxpro/AjaxMethods,App_Code.ashx",
        data: json_data,
        beforeSend: function(xhr) {
            xhr.setRequestHeader("X-AjaxPro-Method", "TellAFriend");
        },
        success: function(s) {
            if(s.value) {
                $('#TAFContent').hide();
                $('#TAFPanel').show();
            }
        }
    }); 
    
}


function showProps(o) {

    var s = '';
    for (property in o)
    {
    s = s + "\n "+property;
    }

    alert(s);
}

function validateEmail(field) {
                var regex=/^(,?[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})+\s*$/; 
                return (regex.test(field)) ? true : false;
            }

var badEmail ='';
function validateMultipleEmailsCommaSeparated(emails)
{
    var result = emails.split(",");
    for(var i = 0;i < result.length;i++)
    {
        if(i == 10)
        {
            badEmail = "overload";
            return false;
        }
        if(!validateEmail(result[i])) 
        {
             badEmail = result[i];
             return false;
        }   
    }        
    return true;
}