/*
	IDEASTAP global JavaScript 
*/

function misc(){
	//form styles

		$('input[type=text], input[type=password]').css({'border' : '1px solid #aaa'});

		 $('input[type="text"], input[type="password"], .basic-form select, textarea').focus(function(){
			  $(this).css('border-color','#000');
		 });
		 $('input[type="text"], input[type="password"], basic-form select, teaxtarea').blur(function(){
			  $(this).css('border-color','#aaa');
		 });
		
		$('object').parents('p').attr('class','no-mar'); // TODO Not working in IE - breaking IE6 layout

		// fix for rightcol groups images height
		$('#rightcol .group:odd').after('<div class="cl"></div>');  
		$('.profile .column .group:eq(2)').after('<div class="cl"></div>');  

		// external links
		$('a.external, .external li a').attr("target", "_blank").prepend('<span class="ax">Opens in a new window<\/span>'); 

		// ask for confirmation links
		$('.askForConfirmation').each(function(){
			$(this).click(function(){
				if (confirm("Are you sure you want to remove this member?")===true) {return true;}
				else {return false;}
			});
		});
		
		


	//EMPTY CONTENT

		$('p:empty').remove();

		//landing page variations
		$('.groups3 h2:empty').css({ 
			'padding-top' : '23px',
		});
		$('.groups2 h2:empty').css({
			'padding-top' : '16px',
		});
		$('.groups h2:empty').css({ 
			'padding-top' : '16px',
		});

}

function pagination(){
	if( $('#numbers').length > 0) {
		$either_side = 4;
		$ellipsis = '&nbsp;&#8230;&nbsp;';
		$current_page = ($('#numbers li a.selected').length > 0) ? parseInt($('#numbers li a.selected').html()) : 1;
		$offset = 7 + $current_page;
		$real_num_pages = parseInt($('#numbers li').length); 
		$num_pages = $real_num_pages - $offset;
		if ($current_page == 1) {
			$('#numbers li:gt('+($either_side + 1)+'):lt('+$num_pages+')').hide();
			$('#numbers li:eq('+($real_num_pages - 2)+')').prepend($ellipsis);
		} else if ($current_page == ($num_pages - 1)) {
			$('#numbers li:gt(1):lt('+($num_pages-$either_side)+')').hide();
			$('#numbers li:eq(1)').append($ellipsis);
		} else {
			$('#numbers li:gt('+($current_page + $either_side)+'):lt('+$num_pages+')').hide();
			$('#numbers li:lt('+($current_page - $either_side)+'):gt(1)').hide();
			if ($current_page < ($real_num_pages - $either_side - 3)) {
				$('#numbers li:eq('+($real_num_pages - 2)+')').prepend($ellipsis);
			}
			if ($current_page > ($either_side + 2)) {
				$('#numbers li:eq(1)').append($ellipsis);
			}
		}
	}
	$('#numbers').show();
}

function starsMotion (){
    var jqStarsDivs = $(".stars-wrap");
    jqStarsDivs.each(function() {
        var jqStarsDiv = $(this);
        var jqStarsUl = jqStarsDiv.find(".stars");
        var jqStarsP = jqStarsDiv.find(".changer");
        var ratedLink = null;
        var defaultText = jqStarsP.text();

        var setStars = function(currentLink) {
            var hasPassedCurrentLink = false; //
            if (currentLink == null) {
                hasPassedCurrentLink = true;
            } else {
                jqStarsP.text($(currentLink).text());
            }
            jqStarsUl.find("li").each(function(index) {
                var jqLi = $(this);
                var jqA = jqLi.find("a");
                if (hasPassedCurrentLink) {
                    jqA.removeClass("selected");
                } else {
                    jqA.addClass("selected");
                }
                if (jqA[0] == currentLink) {
                    hasPassedCurrentLink = true;
                }
            });
            return false;
        };

        jqStarsUl.find("a").click(function() {
            defaultText = $(this).text();
            setStars(this);
            ratedLink = this;
            return false;
        });

        jqStarsUl.find("a").bind("mouseover focus", function() { 
            setStars(this);
        }).bind("mouseout blur", function() {
            setStars(ratedLink)
            jqStarsP.text(defaultText);
        });
    });
}

function starsAjax(){
    function doRating() {
        //$('.stars-wrap .changer').hide();
        $this = $(this);

        var parentId = $this.parents('div.stars-wrap').attr('id');
        var tagId = parseInt(parentId.replace('stars-wrap', ''));
        var idx = $('div#' + parentId + ' ul.stars li').index($this.parent()) + 1;

        $.ajax(
	    {
	        'url': 'StarRating.asmx/Execute',
	        'data': { 'tagId': tagId, 'ratingValue': idx - 1 },
	        'success': function() {
	            $('div#' + parentId + ' ul.stars li a.selected').removeClass('selected');
	            var i = idx;
	            while (i--) {
	                $('div#' + parentId + ' ul.stars li a').eq(i).addClass('selected');
	            }
	            return false;
	        },
	    })
    };
    $('ul.stars li a').prepend(' ').click(doRating).attr('href', '').removeClass('*');
}

function blogMenu(){
	if( $('#blog-menu').length > 0) {
		$('.reveal, .empty').hide(); 
		$('#rightcol li.parent a').click(function(){ 
			if ($(this).siblings('ul').length > 0) {
				$(this).toggleClass('selected').siblings('ul').slideToggle();
			} 
			else { } return true;
		});
	}
}

//back to top buttons
function backToTop(){
	if( $('a.top').length > 0) {
		$('a.top').click(function() {
			 $(document).scrollTo(0,1000,{easing:'easeOutSine'});
		});
		$('.scroll a, a.scroll').each(function(){
			$(this).click(function(){
				$.scrollTo( $(this).attr('href'), 1000, {easing:'easeOutSine'});
			});
		});
	}
}
	
function wordBreaker (){
  // The numchars variable passed in represents the maximum word length
  $.fn.breakWords = function(numchars) {
    this.each(function() {
		var reg = new RegExp("(\\w{"+numchars+"}?)(\\w)", "g");
		this.innerHTML = this.innerHTML.replace(reg, "$1-<wbr /><span class='break'>&nbsp;</span>$2");
    });
    return this;
  };
	$(function(){
		$('.img-post a.name').breakWords(8);
		$('.partner .groups .group a').breakWords(6);
		$('.logged-in p.name').breakWords(10);
		$('p.word-break a').breakWords(10);
		$('.word-break').breakWords(10);
		$('.word-break9').breakWords(9);
		$('.comments-inner .left p').breakWords(29);
		$('#content div.featured-m div.group h3 a').breakWords(10);
		$('#rightcol div.group h3 a').breakWords(8);
		$('.user a').breakWords(20);
		$('table.karma td.user a').breakWords(12);
	});
}


function portfolioTabs(){
	if( $('#media-space').length > 0) {
		/* Show/Hide headers for image text-boxes on mouseover/out */
		$('.text-box.images .top, .text-box.video .top').hide();
		$('.text-box.images, .text-box.video').mouseover(function(){
			$(this).find('.top').show();
		}).mouseout(function(){
			$(this).find('.top').hide();
		});
		/* Show/Hide for each type of portfolio content */
		$('#horiz-nav li:not(.filler)').click(function(){
			var selectedNav = "";
			switch($(this).attr('id')) {
				case "video-nav": selectedNav = 'video'; break;
				case "images-nav": selectedNav = 'images'; break;
				case "audio-nav": selectedNav = 'audio'; break;
				case "text-nav": selectedNav = 'text'; break;
				default: selectedNav = 'text-box'; break;
			}
			if (selectedNav != "") {
				$(this).addClass('current').siblings('li').removeClass('current');
				$('.inner-media-space').slideUp("fast",function(){
					$('.text-box.'+selectedNav+':hidden').show();
					$('.text-box:not(.'+selectedNav+')').hide();
					$('.inner-media-space').slideDown({
					easing: 'easeOutSine',
					duration: 1000
					});
				});
			}
		});		
	}
}

function fancyboxCall () { 
	if ($('a.lightbox').length > 0) {
		$('a.lightbox').fancybox({
		'zoomOpacity' : true,
		'overlayOpacity': 0.8, 
		'overlayShow' : true,
		'zoomSpeedIn' : 500,
		'zoomSpeedOut' : 500,
		'hideOnContentClick': false
	});
	}
	else return false;
}

/*function editInterests () {
	if ($('#edit-interests ul').length > 0) {
		$('#edit-interests ul li a').click(function(){
		return false; 
		});
		$("#sortable1, #sortable2, #sortable3, #sortable4").sortable({
			opacity: '0.8',
			connectWith: '.connectedSortable'
		}).disableSelection();
	}
	else return false;
}*/

function addWebsite() {
	if	(parseInt(document.getElementById('numberwebsites').value) < 5) {
		document.getElementById('numberwebsites').value = parseInt(document.getElementById('numberwebsites').value) + 1;
		var textInput = document.createElement('input');
		textInput.type = 'text';
		textInput.value = '';
		textInput.setAttribute('id', 'website' + document.getElementById('numberwebsites').value);
		textInput.setAttribute('name', 'website' + document.getElementById('numberwebsites').value);
		var labelInput = document.createElement('label');
		labelInput.type = 'label';
		labelInput.value = '';
		labelInput.setAttribute('for', 'website' + document.getElementById('numberwebsites').value);
		document.getElementById('InsertWebsite').appendChild(labelInput);
		document.getElementById('InsertWebsite').appendChild(textInput);
		if (parseInt(document.getElementById('numberwebsites').value) > 4) {
			document.getElementById('addwebsitebutton').style.display = 'none';
		}
	}
}

function wordCounter() {
	$("[class^='count[']").each(function() {
		var elClass = $(this).attr('class');
		var minWords = 0;
		var maxWords = 0;
		var countControl = elClass.substring((elClass.indexOf('['))+1, elClass.lastIndexOf(']')).split(',');

		if(countControl.length > 1) {
			minWords = countControl[0];
			maxWords = countControl[1];
		} else {
			maxWords = countControl[0];
		}

		$(this).after('<div class="wordCount"><strong>0</strong> Words</div>');
			if(minWords > 0) {
			$(this).siblings('.wordCount').addClass('error');
		}

		$(this).bind('keyup click blur focus change paste', function() {
			var numWords = jQuery.trim($(this).val()).split(' ').length;
			if($(this).val() === '') {
			numWords = 0;
		}
		$(this).siblings('.wordCount').children('strong').text(numWords);

		if(numWords < minWords || (numWords > maxWords && maxWords != 0)) {
			$(this).siblings('.wordCount').addClass('error');
			$('textarea:last').addClass('error');
		} else {
			$(this).siblings('.wordCount').removeClass('error');
			$('textarea:last').removeClass('error');
		}
		});
	});
}

function makeToggle(options) {
     var onClass = "toggle-on";
     var $toggle = this //$(options.toggle);
     var $content = $(options.content);

     // default offHTML is none
     var offHTML = options.offHTML || undefined;
     // default onHTML is none
     var onHTML = options.onHTML || undefined;
     // default speed is 0 (no animation)
     var speed = options.speed || 0;
     // default onAction is $.fn.toggle
     var onAction = options.onAction || $.fn.toggle;
     // default offAction is onAction
     var offAction = options.offAction || onAction;
     // default trigger is 'onclick'
     var triggers = options.triggers || "click";

     function toggleContent() {
         if ($toggle.hasClass(onClass)) {
             if (offHTML) $toggle.html(offHTML);
             offAction.apply($content, [speed]);
         } else {
             if (onHTML) $toggle.html(onHTML);
             onAction.apply($content, [speed]);
         }
         $toggle.toggleClass(onClass);
     }

     if(offHTML) $toggle.html(offHTML);
     $toggle.bind(triggers, toggleContent);
     //return the jQuery object for chaining
     return this;
}




$(function(){
	misc();
	pagination();
	blogMenu();
	backToTop();
	portfolioTabs();
	wordBreaker();
	fancyboxCall();
	/*editInterests ();*/
	wordCounter();

	if( $('#addwebsitebutton').length > 0) {
		$('#addwebsitebutton').click(function(){
			addWebsite();
		});
	}

	if( $('.stars').length > 0) {
		starsMotion();
		starsAjax();
	}
});

