var globalAddMsgClass = '';

$(document).ready(function() {
	// 0 = disabled, 1 = enabled
	var popupStatus = 0;
	
	$("#backgroundPopup").css({"opacity": "0.7"});
	$('#backgroundPopup').show();
	$("#popupContact").show();
	$('#backgroundPopup').fadeOut(1);
	$("#popupContact").fadeOut(1, function() {$('#hiddenWrapper').css("visibility", "visible");});
	
	//loading popup with jQuery magic!
	function loadPopup(){
		//loads popup only if it is disabled
		if(popupStatus==0) {
			$("#backgroundPopup").css({"opacity": "0.7"});
			$("#backgroundPopup").fadeIn('fast');
			$("#popupContact").fadeIn('fast');
			popupStatus = 1;
		}
	}
	
	//disabling popup with jQuery magic!
	function disablePopup() {
		//disables popup only if it is enabled
		if(popupStatus==1) {
			$("#backgroundPopup").fadeOut('fast');
			$("#popupContact").fadeOut('fast');
			popupStatus = 0;
		}
	}
	
	//centering popup
	function centerPopup(){
		//request data for centering
		var windowWidth = document.documentElement.clientWidth;
		var windowHeight = document.documentElement.clientHeight;
		var popupHeight = $("#popupContact").height();
		var popupWidth = $("#popupContact").width();
		//centering
		$("#popupContact").css({
			"position": "absolute",
			"top": 100,
			"left": windowWidth/2-popupWidth/2
		});
		//only need force for IE6
		$("#backgroundPopup").css("height", "1000px");
	}
	
	//LOADING POPUP
	//Click the button event!
	$("#mnavContact").click(function() {
		//centering with css
		centerPopup();
		//load popup
		loadPopup();
	});
	
	//CLOSING POPUP
	//Click the x event!
	$("#popupContactClose").click(function(){
		disablePopup();
	});
	
	//Click out event!
	$("#backgroundPopup").click(function(){
		disablePopup();
	});
	
	//Press Escape event!
	$(document).keypress(function(e){
		if(e.keyCode==27 && popupStatus==1) {
			disablePopup();
		}
	});
	
	$("#dropbox").sortable({
		revert: true
	});

	$("#dropbox").droppable({
		drop: function(event, ui) {
			$('.dragtip').remove()
		}
	});
	
	$('.dragTip').draggable({
		disabled: true
	});
    
	$(".draggable").draggable({
		connectToSortable: '#dropbox',
		helper: 'clone',
		revert: 'invalid'
	});
	$("ul, li").disableSelection();
    
    $('#addMessage').toggle(
        function() { $('#newMessage').show(); },
        function() { $('#newMessage').hide(); }
    );
    
	//Adds a custom message to the dropbox
	$('#newMessage').keyup(function(event) {
		event.stopPropagation();
		event.preventDefault();
		if(event.keyCode == '13' || event.keyCode == '10') {
			if($('#newMessage').val().length > 0) {
				$('#newMessage').val('');
				toggleDragTip();
				$('.'+globalAddMsgClass+' span').addClass('customTag');
				$('.'+globalAddMsgClass+' span').removeClass('editTag');
				globalAddMsgClass = '';
			}
			event.cancelBubble = true;
			event.returnValue = false;
		}
		else onChangeMsg();
	});
	
	$('#name #email #phone').keyup(function(event) {
		event.stopPropagation();
		event.preventDefault();
		if(event.keyCode == '13' || event.keyCode == '10') {
	        event.cancelBubble = true;
			event.returnValue = false;
			return false;
	    }
	});
	
	function onChangeMsg() {
		if(globalAddMsgClass.length > 0 && $('#newMessage').val().length > 0) {
			$('.'+globalAddMsgClass).html('<span class="draggable editTag mediumTag ui-state-default"></span><img width="14" height="14" title="remove this tag" onmouseout="$(this).attr(\'src\', \'/_/sites/cirv/images/comment-del.png\')" onmouseover="$(this).attr(\'src\', \'/_/sites/cirv/images/comment-del-hover.png\')" src="/_/sites/cirv/images/comment-del.png" class="delete">');
			$('.'+globalAddMsgClass+' span').text($('#newMessage').val());
		}
		else if($('#newMessage').val().length > 0) {
			globalAddMsgClass = 'a' + uniqueId();
			$('#dropbox').append('<li class="'+globalAddMsgClass+'">'+$('#newMessage').val()+'<img width="14" height="14" title="remove this tag" onmouseout="$(this).attr(\'src\', \'/_/sites/cirv/images/comment-del.png\')" onmouseover="$(this).attr(\'src\', \'/_/sites/cirv/images/comment-del-hover.png\')" src="/_/sites/cirv/images/comment-del.png" class="delete"></li>');
			toggleDragTip();
			$('.'+globalAddMsgClass+' span').addClass('editTag');
		}
		else {
			$('.'+globalAddMsgClass).remove();
			globalAddMsgClass = '';
		}
	}
	
	function uniqueId() {
		return new Date().valueOf();
	}
	
	$('.delete').live('click', function() {
		$(this).parent().remove();
	});
	
	$('.contactForm').validate({
		onkeyup: false,
		submitHandler: ajaxFormSubmit
	})
	
	$.validator.addMethod("NumbersOnly", function(value, element) {
		return this.optional(element) || /^[0-9\-\+]+$/i.test(value);
	}, "Phone must contain only numbers, + and -.");
	
	function ajaxFormSubmit() {
		if(!$('#name').val()) {
			return false
		}
		
	    //update tag frequency
	    var id = '';
	    $('#dropbox li').each(function() {
	        if((id = $(this).attr('id'))) {
				id = id.substr(1, id.length);
	            $.getJSON("/cctag/com/cirv/cctag/cctag.cfc", {
	                method: "updateTagFreq",
	                tag_id: id
	            });
	        }
	    });
	    
	    //convert tags to message text
	    var text = '';
	    $('#dropbox li').each(function() {
	        text += $(this).text();
	        text += '\n';
	    });
	    text = text.substr(0, text.length-1);
	    
	    //email form results
	    $.getJSON("/cctag/com/cirv/cctag/email.cfc", {
	        method: "sendMessage",
	        senderName: $('#name').val(),
	        senderEmail: $('#email').val(),
			senderPhone: $('#phone').val(),
	        message: text
	    }, function() {
			$('#name').val('');
			$('#email').val('');
			$('#phone').val('');
			$('#newMessage').val('');
			clearDropbox();
	        alert('Your message has been sent. Thanks!');
			disablePopup();
	    });
	}
});

function clearDropbox() {
	$('#dropbox').empty();
}

function toggleDragTip() {
    if($('#dropbox li').size() > 0) {
        $('.dragTip').hide();
    }
}