/* Javascript stylesheet */
document.write("<link rel=\"StyleSheet\" href=\"/spirentAssets/css/spirentJs.css\" type=\"text/css\" media=\"screen\" />");

$(document).ready(function() {
	fnCustomForms();
    fnButtonHovers();
    fnLoadForms();
    fnMiniFlyout();

    // Tabs 
    $(function() {
        var tabContainers = $('div.tabs > div');

        $('div.tabs ul.tabNavigation a').click(function() {
            $('div.tabs > div').addClass('hidden');
            $('div.tabs > div').removeClass('shown');
            tabContainers.filter(this.hash).removeClass('hidden');
            tabContainers.filter(this.hash).addClass('shown');

            $('div.tabs ul.tabNavigation li').removeClass('active');
            $(this).parent().addClass('active');

            return false;
        });
    });

    $('h2.tab-title').hide();



    var getXY = function(k) {
        var l = [0, 0];
        do {
            l[0] += k.offsetLeft;
            l[1] += k.offsetTop;
        } while (k = k.offsetParent);
        return l;
    };



    // IE6 Flyout Nav
    if ('ActiveXObject' in window && !('XMLHttpRequest' in window)) {

        var shim = document.createElement('iframe');
        shim.style.border = '0';
        //shim.src = '/';
        shim.setAttribute('frameBorder', '0');
        shim.frameborder = '0';
        shim.border = '0';
        shim.style.position = 'absolute';
        shim.style.top = '0';
        shim.style.left = '0';
        shim.style.visibility = 'hidden';
        document.body.appendChild(shim);
        $(function() {
            $('#nav3 , #nav2 , #nav4 , #nav6 ').hover(function() {
                $(this).addClass('hover');
                var flyout = this.getElementsByTagName('div')[0];
                if (flyout){
	                var coords = getXY(flyout);
	                var flyoutDims = [flyout.offsetWidth, flyout.offsetHeight];
	                shim.style.width = flyoutDims[0] + 'px';
	                shim.style.height = flyoutDims[1] + 'px';
	                shim.style.left = coords[0] + 'px';
	                shim.style.top = coords[1] + 'px';
	                shim.style.visibility = '';
            }

            }, function() {
                $(this).removeClass('hover');
                shim.style.visibility = 'hidden';
            });
        });



        $(function() {
            $('#share-bar').hover(function() {
                $(this).addClass('hover');
            }, function() {
                $(this).removeClass('hover');
            });
        });
    };
	
    
    // init Youtube player
    youTubeLinks();


});

function fnButtonHovers(){
	
	$(':image.hov').unbind('mouseenter mouseleave').hover(
		function(){
			var src = $(this).attr('src');
			src =  src.replace('-on', ''); //deal with sticking buttons
			src =  src.replace('.gif', '-on.gif');
			$(this).attr('src', src);
		},function(){
			var src = $(this).attr('src');
			src =  src.replace('-on', '');
			$(this).attr('src', src);
		});
}


function assignForm(prefix, qString) {

    $('a.' + prefix).click(function() {
        //reset form in case it has already been used
        $("#form")[0].reset();
        if ( $("#submitButtonWrapper").length > 0 ) {
        $('#submitButtonWrapper').show();   
        }            
        if ( $("#formWrapper").length > 0 ) {
        $('#formWrapper').show();    
        }     
        if ( $("#messages").length > 0 ) {
        $('#messages').html('');    
        }             
        
        var uId = getVar($(this).attr('href'), qString);


        $('#' + prefix + 'Id').attr('value', uId);

        $.blockUI.defaults.css = {};
        $.blockUI({ message: $('#' + prefix + 'Form') });
        /*$('#'+prefix+'SubmitBtn').unbind('click').click(function(){
        //alert('validate and send ' +prefix);
        //do validation
        // if validation ok send form
        //return false;
        });*/



        $('a.close, a.cancel').unbind('click').click(function() {
            $.unblockUI();
            $('.validation ul li').remove();                          
            return false;
        });
        fnButtonHovers();
        return false;
    });
}

function assignFormWP(prefix, qString) {

    $('a.' + prefix).click(function() {
        
        var uId = $(this).attr('href');/*getVarWP($(this).attr('href'), qString);*/
        
        $('.whitepaperId').attr('value', uId);
        $.blockUI.defaults.css = {};
        $.blockUI({ message: $('#' + prefix + 'Form') });
        
        $('#downloadForm').show();
        $('#messagesWP').html("").hide();
        
        /*$('#'+prefix+'SubmitBtn').unbind('click').click(function(){
        //alert('validate and send ' +prefix);
        //do validation
        // if validation ok send form
        //return false;
        });*/



        $('a.close, a.cancel').unbind('click').click(function() {
            $.unblockUI();
            $('.validation ul li').remove();         
            return false;
        });
        fnButtonHovers();
        return false;
    });
}


function fnLoadForms(){
	$('body').append('<div id="whitepaperForm"></div>');
	$('body').append('<div id="eventForm"></div>');
	$('body').append('<div id="sendForm"></div>');
	$('#whitepaperForm, #eventForm, #sendForm').hide();
	
	/*
	if($('a.event').length>0){
		$('#eventForm').load('eventForm.html',null,function(data, status){
			if(status == 'success'){
				//assignEventForm();
				assignForm('event', 'id');
				$('form', this).validate({
					errorLabelContainer: $('.validation ul', this),
					wrapper: "li",
					submitHandler: function(form) {
					   //AJAX SUBMIT GOES HERE;
					    alert('event form is valid');
					   return false;
					   }
				 });
				
			}
		});
	}
	*/
	
	/*
	$('#eventForm').load('eventForm.html',null,function(data, status){
		if(status == 'success'){
			//assignEventForm();
			assignForm('event', 'id');
			$('form', this).validate({
				errorLabelContainer: $('.validation ul', this),
				wrapper: "li",
				submitHandler: function(form) {
				   //AJAX SUBMIT GOES HERE;
				    alert('event form is valid');
				   return false;
				   }
			 });
			
		}
	});
	*/
	

	if($('a.send').length>0){
		$('#sendForm').load('/send-to-friend-popup.aspx',null,function(data, status){
			if(status == 'success'){
				//assignEventForm();
				assignForm('send', 'url');			
			$('form', this).validate({
				errorLabelContainer: $('.validation ul', this),
				wrapper: "li",
				submitHandler: function(form) {
				   //AJAX SUBMIT GOES HERE;
				    var sSendTo = $("#sendTo").val();
				    var sSendFrom = $("#sendFrom").val();
				    var sSendComments = $("#sendComments").val();
				    var sSendUrl = $("#sendId").val();
				    //$.post("send-to-friend-popup.aspx", { to: sendTo, from: SendFrom, comments: sendComments, url: sendUrl, ajax: "true"} );
				    $.getJSON("/send-to-friend-popup.aspx", { sendTo: sSendTo, sendFrom: sSendFrom, sendComments: sSendComments, url: sSendUrl, ajax: "true"}, function(json){
                        if(json.status == "true"){
                            //$.unblockUI();
                            $('#formWrapper').hide();
                            $('#submitButtonWrapper').hide();
                            $('#messages').html('<p>' + json.alerts[0] + '</p>');
                        }
                        else{
                            var sAlertMessages = "";
                            sAlertMessages = "<ul>";
                            for(i=0; i < json.alerts.length;i++){
                                sAlertMessages = "<li>" + sAlertMessages + json.alerts[i] + "</li>";
                            }
                            sAlertMessages =  sAlertMessages + "</ul>";
                            $('#validation').html('<p>' + json.alerts[0] + '</p>');
                        }
                    });

				   return false;
				   }
			 });
				
			}
		});
		
		
}


    if ($('a.whitepaper').length > 0) {
        $('#whitepaperForm').load('/white-paper-form.aspx', null, function(data, status) {
            if (status == 'success') {
                //assignWhitePaperForm();
                assignFormWP('whitepaper', 'id');
                $('form', this).validate({
                    errorLabelContainer: $('.validation ul', this),
                    wrapper: "li",
                    submitHandler: function(form) {
                        //var uId = getVarWP($(this).attr('href'), 'id');
                        var uId = $('.whitepaperId').val();
                        //AJAX SUBMIT GOES HERE;
                        var detailTitle = $(".whitepaperFormTitle").val();
                        var detailFirstname = $(".whitepaperFormFirstName").val();
                        var detailSurname = $(".whitepaperFormSurname").val();
                        var detailsCompany = $(".whitepaperFormCompany").val();
                        var detailsEmail = escape($(".whitepaperFormEmail").val());
                        var detailsNewsletter = $(".whitepaperFormNewsletter input").val();
                        //$.post("/white-paper-form.aspx", { title: detailTitle, firstname: detailFirstname, surname: detailSurname, company: detailsCompany, email: detailsEmail, newsletter: detailsNewsletter, ajax: "true"} );
                        /*$.getJSON("/white-paper-form.aspx", { title: detailTitle, firstname: detailFirstname, surname: detailSurname, company: detailsCompany, email: detailsEmail, newsletter: detailsNewsletter, ajax: "true" }, function(json) {
                            if (json.status == "true") {
                                $.unblockUI();
                            }
                            else {
                                var sAlertMessages = "";
                                for (i = 0; i < json.alerts.length; i++) {
                                    sAlertMessages = sAlertMessages + json.alerts[i] + "\n";
                                }
                                alert(sAlertMessages);
                            }
                        });*/
                        
                        $.ajax({
							type: "GET",
							url: "/white-paper-form.aspx",
							data: { title: detailTitle, firstname: detailFirstname, surname: detailSurname, company: detailsCompany, email: detailsEmail, newsletter: detailsNewsletter, whitepaperId: uId, ajax: "true" },
							success: function(msg){
								//$("#whitepaperForm .overlayForm").html(msg);
								$('#downloadForm').hide();
                                $('#submitButtonWrapperWP').hide();
                                $('#messagesWP').html(msg).show();
							},
							error: function(XMLHttpRequest, textStatus, errorThrown){
								alert(textStatus);
								}
							});
                        
                        
                        return false;
                    }
                });
            }
        });
    }
}

function getVar(idString, qString){
	var idArr = idString.split('?');
	var uId = idArr[1].replace(qString + '=', '');
	
	return uId;
}

function getVarWP(idString, qString) {
    var uId = idString.replace(qString + '=', '');
//	alert(uId);

    return uId;

}


function youTubeLinks() {
	
	if($("a.youtube").length > 0){
			
		$("a.youtube")
			.click(function() {
				var url = $(this)[0].href;
				var vId = url.split('?v=')[1];
				
				var player =  '<div id="vidPlayer"><a href="#" class="close">close</a> <div id="ytapiplayer">You need Flash player 8+ and JavaScript enabled to view this video.</div>';
				player += '<script type="text/javascript">';
				player += '	var params = { allowScriptAccess: "always", wmode: "transparent" }; var atts = { id: "myytplayer" };'; 
				player += '	swfobject.embedSWF("http://www.youtube.com/v/'+ vId +'?enablejsapi=1&playerapiid=ytplayer", "ytapiplayer", "425", "356", "8", null, null, params, atts);';
				player += '</script></div>';
				
				$.blockUI.defaults.css = {
					top:  ($(window).height() - 500) /2 + 'px', 
	                left: ($(window).width() - 500) /2 + 'px', 
	                width: '467px'
				};
				
		 		$.blockUI({	message : player });
				
				$(".blockOverlay, a.close") .click(function() {
					$.unblockUI();
				});
								
	      		return false;
	      		
			});
		
		
	}
	
}

function fnCustomForms(){
	if($('form.customForm').length>0){
		var form = $('form.customForm');
		
		//add a validation message
		form.prepend('<div class="validation"></div>').find('.validation', this).hide();
		
		//replace the input button with an image one
		var button = '<input type="image" src="/spirentAssets/images/buttons/submit-button.gif" alt="Submit" value="Submit" class="hov"/>';
		form.find(':submit').replaceWith(button);
		
		// Create a rule which sets max length 
    $.validator.addMethod("cMaxLength", $.validator.methods.maxlength, $.format("Please enter less than {0} characters"));// leverage parameter replacement for maxlength, {0} gets replaced with 2

    // Set the max length 400 rule to a max length 400 class we can place on text areas.
    $.validator.addClassRules("maxlength400", { cMaxLength: 400 });

		//plugin the validation
		form.validate({errorElement: "em",
			errorPlacement: function(error, element) {
			//find the next break tag as placing the error next to the input breaks it when using radio buttons or checkboxes.
			element.nextAll('br:first').before(error);
			}, ignoreTitle : true,
			invalidHandler: function(form, validator) {
		      var errors = validator.numberOfInvalids();
		      if(errors){
		        var message = errors == 1
				? 'There are errors in 1 field. It has been highlighted'
				: 'There are errors in ' + errors + ' fields. They have been highlighted';
		        $("div.validation").html('<em class="error">'+message+'</em>').show();
		      	}else{
		        	$("div.validation").hide();
		      	}
		    }
        });
	}
}

// mini flyout on 
function fnMiniFlyout() {		
	if($('li.miniFO')){		
		$('div.mfoWrap').hide();
		$('div.mfoWrap').parents('li')
			.hover(function() {
				$(this).find('.mfoWrap').show();
			}, function() {
				$(this).find('.mfoWrap').hide();
			});			
		$('li.miniFO a:first')
			.bind('focus', function(event) {
				$(this).parents('li')				
				$(this).parents('li').find('.mfoWrap').show();			
			})
			.bind('blur', function(event) {
				if(!$(this).find('a:focus')){
					$(this).parents('li').find('.mfoWrap').hide();	
				}
			});
		
		$('li.miniFO ul li a:last')			
			.blur(function() {		
				$('div.mfoWrap').hide();		
			
			});
	}
		
}