$(document).ready(function(){
	maxValue = function(array){
	 	mxm = array[0];
	 	for (i = 0; i < array.length; i++) {
	 		if (array[i] > mxm) {
	 			mxm = array[i];
	 		}
	 	}
	 	return mxm;
	 };
	 
	 minValue = function(array){
	 	min = array[0];
	 	for (i = 0; i < array.length; i++) {
	 		if (array[i] < min) {
	 			min = array[i];
	 		}
	 	}
	 	return min;
	 };
	 
	 avgValue = function(array){
	 	count = array.length;
		running = 0;
		for (i = 0; i < count; i++){
			running = running + array[i];
		}
		avg = running / count;
		return avg;
	 };
	 
	 $.fn.autoColumn = function(columns, margin){
		var columnItems = $(this).children();
		var childWidth = $(columnItems).filter(':eq(0)').outerWidth();
		var mid = new Array(columns);
		var columnsWidth = childWidth * columns;
		if (!margin)
			{
			var margin = Math.floor(($(this).outerWidth() - columnsWidth) / (columns - 1));
			}

		for(m=0;m<columns;m++){
			mid[m] = $(columnItems).filter(':nth-child('+columns+'n-'+m+')');
		}
		
		
		for(c=0;c<columns;c++){	
			$(mid[c]).wrapAll('<div style="width:'+childWidth+'px;float:left;padding:0px;margin-right:0px;" class="autoColumn"></div>');
		}
		
		$('.autoColumn').not(':last').css('margin-right',margin+'px');
		
		$(this).append('<div style="clear:both;"></div>');
		
		$('.autoColumn').before('<div></div>').after('<div></div>');
		
		
		if($(columnItems).length % columns != 0){
			var lefts = $(columnItems).length - ($(columnItems).length % columns)- 1;
			$(columnItems).filter(':gt('+lefts+')').css('margin-bottom','0px');
		}
		else{
			var lefts = $(columnItems).length - columns - 1;
			$(columnItems).filter(':gt('+lefts+')').css('margin-bottom','0px');
		}
		
	 
	 };
	 
$.fn.safeHover = function(inFunction, outFunction, inDelay, outDelay, connection){

    var inReg = String(inFunction).replace(/\n/g, "").slice(13, -1);
    var outReg = String(outFunction).replace(/\n/g, "").slice(13, -1);
    var startOut;
    var hasRun = false;
    var startIn;
    
    $(this).each(function(){
    
        var ref = $('*').index(this);
        
        $.changeState = function(){
            hasRun = true;
        };
        
        $(this).bind("mouseenter", function(){
            target = $(this);
            inReg = inReg.replace(/this/g, "target");
            inReg = inReg + '$.changeState();';
            
            if (connection == 'linked') {
                clearTimeout(startOut);
            }            
            startIn = setTimeout(function(){eval(inReg);}, inDelay);

        });		
		
		$(this).bind("mouseleave", function(){
	        outReg = outReg.replace(/this/g, "target");
	        outReg = "if(hasRun == true){"+outReg+"}";
	        clearTimeout(startIn);

			startOut = setTimeout(function(){eval(outReg);}, outDelay);

        });
        
    });
    
};

	
	$.fn.leftAlign=function(){
			
		var lefts = new Array();
		$(this).each(function(){
			var theItem = $(this);
			$(theItem).css('position','relative');
			var theOffset = $(theItem).offset();
			lefts.push(theOffset.left);
		});
		
		var biggestValue = 1;
		for (x=0;x<lefts.length;x++){
			if (lefts[x] > biggestValue){
				biggestValue = lefts[x];
			};
		};
		
		$(this).each(function(){
			var theMoving = $(this);
			var Offset = $(theMoving).offset();
			var calcOffset = biggestValue - Offset.left;
			$(theMoving).css({"left":calcOffset});
		});
			
	};
	
	$.fn.centerNav=function(){
		var childWidths = 0;
		var childCount = $(this).length;
		var parentWidth = parseFloat($(this).parent('div').width());

		$(this).each(function(){
			$(this).css({'padding-left':'0px','padding-right':'0px'});
			childWidths = childWidths + $(this).outerWidth();
		})
		
		var newPad = Math.floor(((parentWidth-childWidths)/childCount)/2);
		$(this).each(function(){
			$(this).css({'padding-left':newPad+'px','padding-right':newPad+'px'});
		})
	};
	
	$.url = function(component,paramIndex){
	    /*
	    This script only works with the assumption that the index page of the site is index.php
	    component options:
	    all
	    file
	    fileExt
	    params
	    */
	
	    if (component == null) {
	        component = 'all';
	    }
		
		if (paramIndex == null) {
	        paramIndex = -1;
	    }
	    
	    switch (component) {
	        case 'all':
	            var currentUrl = location.href;
				var page = currentUrl.substring((currentUrl.lastIndexOf("/") + 1));
				var slashCount = (currentUrl.split("/").length - 1);

				if(page == '' && slashCount <= 5){page = 'index.php';}
				else if(page == '' && slashCount > 5){page = 'inventory.php?t=N';}
				return page;			
	            break;
	        case 'file':
	            var currentUrl = location.href;
	            var page = currentUrl.substring((currentUrl.lastIndexOf("/") + 1), currentUrl.indexOf(".", (currentUrl.lastIndexOf("/") + 1)));
				if(page.indexOf("http") != -1){
					page = 'index';
				}
	            var slashCount = (currentUrl.split("/").length - 1);

				if(page == '' && slashCount <= 5){page = 'index.php';}
				else if(page == '' && slashCount > 5){page = 'inventory.php?t=N';}
				return page;
	            break;
	        case 'fileExt':
	            var currentUrl = location.href;
	            if (currentUrl.indexOf("?") != -1) {
					var page = currentUrl.substring((currentUrl.lastIndexOf("/") + 1), currentUrl.indexOf("?"));
				}
				else{
					var page = currentUrl.substring((currentUrl.lastIndexOf("/") + 1));
				}
	
	            if(page.indexOf("http") != -1){
					page = 'index.php';
				}
				var slashCount = (currentUrl.split("/").length - 1);

				if(page == '' && slashCount <= 5){page = 'index.php';}
				else if(page == '' && slashCount > 5){page = 'inventory.php?t=N';}
				return page;
	            break;
			case 'params':
	            var currentUrl = location.href;
	            if (currentUrl.indexOf("?") == -1){
					page = null;
				}
				var page = currentUrl.substring((currentUrl.indexOf("?") + 1));
				if (page.indexOf("&") != -1){
					page = page.split("&");
					if (paramIndex >= 0){
						page = page[paramIndex];
					}
				}
				var slashCount = (currentUrl.split("/").length - 1);

				if(page == '' && slashCount <= 5){page = 'index.php';}
				else if(page == '' && slashCount > 5){page = 'inventory.php?t=N';}
				return page;
	            break;
	    }
	};
	
	print_r=function(array){
		count = array.length;
		var str = '';
		for(x=0;x<count;x++){
			if(x != count-1){
				str = str + array[x] + ',';
			}
			else{
				str = str + array[x];
			}
		}
		alert(str);
	}
	
	$.fn.sequentialLoad=function(effect,delay,callback){
		var arr = jQuery.makeArray(this);
		
		if (effect instanceof Array)
		{
			var count = arr.length;
			effects = new Array(count);
			for($x=0;$x<count;$x++){
				effects[$x]=effect[$x];
			}
		}
		else{
			var count = arr.length;
			effects = new Array(count);
			for($x=0;$x<count;$x++){
				effects[$x]=effect;
			}
		}
	
		var addition = '$(arr[0]).'+effects[0]+'('+delay+'';
		var cap = ')';
		var total = arr.length - 1;
		for($i=total;$i>0;$i--)
		{
			addition=addition+',function(){$(arr['+((total+1)-$i)+']).'+effects[((total+1)-$i)]+'('+delay+'';
			cap=cap+'})';
		}
		if(callback)
		{
			callback=',function(){'+callback;
			addition=addition+callback;
			cap='}'+cap;
		}
	
		var addition=addition+cap;
		eval(addition);
		
	};
	
	
	
	
});

$.fn.allImagesLoaded=function(e){
	imgTest = new Object();
	imgTest.parent = $(this);
	
	imgTest.count = imgTest.parent.find('img:not(.loadIgnore)').length;
	
	if(imgTest.count > 0){
		imgTest.pageTest = function(){
			imgTest.pageTest.pass = 0;
				
			imgTest.parent.find('img:not(.loadIgnore)').each(function(){
				if($(this).width() > 0 && $(this).height() > 0){
					imgTest.pageTest.pass++;
				}
			});
				
			if(imgTest.pageTest.pass == imgTest.count){
				eval(e);
			}
			else{
				setTimeout('imgTest.pageTest();',200);
			}
		}
			
		imgTest.pageTest();
	}
};

$('img[mapping]').each(function(){
	var mapX1 = $(this).attr('mapping').split(",")[0];
	var mapY1 = $(this).attr('mapping').split(",")[1];
	var mapWidth = ($(this).attr('mapping').split(",")[2])-($(this).attr('mapping').split(",")[0]);
	var mapHeight = ($(this).attr('mapping').split(",")[3])-($(this).attr('mapping').split(",")[1]);
	$(this).css({
		position:'absolute',
		left:mapX1+'px',
		top:mapY1+'px',
		width:mapWidth+'px',
		height:mapHeight+'px'
	});
});

/**
 * @author msandow
 */

$.fn.divMap = function(usemap){	
	
	var divMap = new Object();
	
	divMap.target = $(this);
	divMap.map = $(usemap);
	divMap.areas = divMap.map.find('area');
	
	$(divMap.areas).each(function(){
		divMap.area = $(this);
				
		divMap.area.link = divMap.area.attr('href');
		divMap.area.target = divMap.area.attr('target');
		divMap.area.x1 = divMap.area.attr('coords').split(",")[0];
		divMap.area.y1 = divMap.area.attr('coords').split(",")[1];
		divMap.area.width = (divMap.area.attr('coords').split(",")[2])-(divMap.area.attr('coords').split(",")[0]);
		divMap.area.height = (divMap.area.attr('coords').split(",")[3])-(divMap.area.attr('coords').split(",")[1]);
		
		if (divMap.area.link != '') {
			if (divMap.area.target == '') {
				divMap.area.a = '<a href="' + divMap.area.link + '">';
			}
			else {
				divMap.area.a = '<a href="' + divMap.area.link + '" target="' + divMap.area.target + '">';
			}
		}else{
			divMap.area.a = '';
		}
		
		divMap.area.extras = '';
		if(divMap.area.attr('toClass')){
			divMap.area.extras += 'class="'+divMap.area.attr('toClass')+'" ';
		}
		if(divMap.area.attr('toId')){
			divMap.area.extras += 'id="'+divMap.area.attr('toId')+'" ';
		}
		if(divMap.area.attr('toAttr')){
			divMap.area.extras += 'attr="'+divMap.area.attr('toAttr')+'" ';
		}
		if(divMap.area.attr('toText')){
			divMap.area.extras += 'text="'+divMap.area.attr('toText')+'" ';
		}
		
		$(divMap.target).append(divMap.area.a+'<img src="img/blank.gif" style="float:none;position:absolute;top:'+divMap.area.y1+'px;left:'+divMap.area.x1+'px;width:'+divMap.area.width+'px;height:'+divMap.area.height+'px;border-style:none;" '+divMap.area.extras+'></a>\n');
		
	});
	
};

if (jQuery.browser.msie && (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1)) {
	var IE6 = true;
}else{
	var IE6 = false;
}

if(jQuery.browser.msie && navigator.appName == "Microsoft Internet Explorer"){
	var IE = true;
}else{
	var IE = false;
}

(function($){
 
    $.extend($.expr[':'],{
 
        data: function(a,i,m) {
 
            var e = $(a).get(0), keyVal;
            if(!m[3]) {
                for (var x in e) { if((/jQuery\d+/).test(x)) { return true; } }
 
            } else {
                keyVal = m[3].split('=');
                if (keyVal[1]) {
 
                    if((/^\/.+\/([mig]+)?$/).test(keyVal[1])) {
                        return
                         (new RegExp(
                             keyVal[1].substr(1,keyVal[1].lastIndexOf('/')-1),
                             keyVal[1].substr(keyVal[1].lastIndexOf('/')+1))
                          ).test($(a).data(keyVal[0]));
                    } else {
                        return $(a).data(keyVal[0]) == keyVal[1];
                    }
 
                } else {
 
                    if($(a).data(keyVal[0])) {
                        return true;
                    } else {
                        $(a).removeData(keyVal[0]);
                        return false;
                    }
                }
            }
 
            return false;
 
        }
 
    });
})(jQuery);

(function($){
	jQuery.extend(jQuery.expr[':'], {
		every: function(
			objNode,
			intStackIndex,
			arrProperties,
			arrNodeStack
		){
			var number = arrProperties[3];
			var jThis = $( objNode );
			var numeric = intStackIndex + 1;
			if((numeric % number) == 0){
				return true;
			}
			else{
				return false;
			}
		}
	});
})(jQuery);
