(function( $ ){
	
	if(!$.omr){
		$.omr = new Object();
	};

	$.omr.totemticker = function(el, options ) {
	  	
	  	var base = this;
	  	
		//Define the DOM elements
	  	base.el = el;
	  	base.$el = $(el);
	  	
	  	// Add a reverse reference to the DOM object
        base.$el.data("omr.totemticker", base);
	  	
	  	base.init = function(){
            base.options = $.extend({},$.omr.totemticker.defaultOptions, options);
            
            //Define the ticker object
           	base.ticker;
			
			//Adjust the height of ticker if specified
			base.format_ticker();
			
			//Setup navigation links (if specified)
			base.setup_nav();
			
			//Start the ticker
			base.start_interval();
			
			//Debugging info in console
			//base.debug_info();
        };
		
		base.start_interval = function(){
			
			//Clear out any existing interval
			clearInterval(base.ticker);
			
	    	base.ticker = setInterval(function() {
	    	
				height = $("#news li:first").height() + 10;
	    		base.$el.find('li:first').animate({
	            	marginTop: '-' + height+"px"//base.options.row_height,
	            }, base.options.speed, function() {
	               $(this).remove().css('marginTop', '0').appendTo(base.$el);
	            });
	            
	    	}, base.options.interval);
	    }
	    
	    base.reset_interval = function(){
	    	clearInterval(base.ticker);
	    	base.start_interval();
	    }
	    
	    base.stop_interval = function(){
	    	clearInterval(base.ticker);
	    }
	
		base.format_ticker = function(){
		
			if(typeof(base.options.max_items) != "undefined" && base.options.max_items != null) {
				
				//Remove units of measurement (Should expand to cover EM and % later)
				var stripped_height = base.options.row_height.replace(/px/i, '');
				var ticker_height = stripped_height * base.options.max_items;
			
				base.$el.css({
					height		: ticker_height + 'px', 
					overflow	: 'hidden'
				});
				
			}else{
				//No heights were specified, so just doublecheck overflow = hidden
				base.$el.css({
					overflow	: 'hidden'
				})
			}
			
		}
	
		base.setup_nav = function(){
			
			//Stop Button
			if (typeof(base.options.stop) != "undefined"  && base.options.stop != null){
				$(base.options.stop).click(function(){
					base.stop_interval();
					return false;
				});
			}
			
			//Start Button
			if (typeof(base.options.start) != "undefined"  && base.options.start != null){
				$(base.options.start).click(function(){
					base.start_interval();
					return false;
				});
			}
			
			//Previous Button
			if (typeof(base.options.previous) != "undefined"  && base.options.previous != null){
				$(base.options.previous).click(function(){
					base.$el.find('li:last').detach().prependTo(base.$el).css('marginTop', '-' + base.options.row_height);
					base.$el.find('li:first').animate({
				        marginTop: '0px'
				    }, base.options.speed, function () {
				        base.reset_interval();
				    });
				    return false;
				});
			}
			
			//Next Button
			if (typeof(base.options.next) != "undefined" && base.options.next != null){
				$(base.options.next).click(function(){
					base.$el.find('li:first').animate({
						marginTop: '-' + base.options.row_height
			        }, base.options.speed, function() {
			            $(this).detach().css('marginTop', '0px').appendTo(base.$el);
			            base.reset_interval();
			        });
			        return false;
				});
			}
			
			//Stop on mouse hover
			if (typeof(base.options.mousestop) != "undefined" && base.options.mousestop === true) {
				base.$el.mouseenter(function(){
					base.stop_interval();
				}).mouseleave(function(){
					base.start_interval();
				});
			}
			
			/*
				TO DO List
				----------------
				Add a continuous scrolling mode
			*/
			
		}
		
		base.debug_info = function()
		{
			//Dump options into console
			console.log(base.options);
		}
		
		//Make it go!
		base.init();
  };
  
  $.omr.totemticker.defaultOptions = {
  		message		:	'Ticker Loaded',	/* Disregard */
  		next		:	null,		/* ID of next button or link */
  		previous	:	null,		/* ID of previous button or link */
  		stop		:	null,		/* ID of stop button or link */
  		start		:	null,		/* ID of start button or link */
  		row_height	:	'60px',	/* Height of each ticker row in PX. Should be uniform. */
  		speed		:	800,		/* Speed of transition animation in milliseconds */
  		interval	:	5000,		/* Time between change in milliseconds */
		max_items	: 	null 		/* Integer for how many items to display at once. Resizes height accordingly (OPTIONAL) */
  };
  
  $.fn.totemticker = function( options ){
    return this.each(function(){
    	(new $.omr.totemticker(this, options));
  	});
  };
  
     $.fn.slicer = function(options) {
        var defaults = {
            direction: 'bottomUp',
            duration: 800,
            sliceDelay: 100,
            numberOfSlices: 5,
            auto: true,
            delay: 2000,
            nextID: 'next',
            prevID: 'prev'
        };

        var options = $.extend(defaults, options);
        var element = $(this).attr("id");
        var elementWidth = $(this).width();
        var elementHeight = $(this).height();

        var slice = new Object();
        slice.Name = element + "_slice";
        slice.Height = null;
        slice.Width = null;
        slice.InitialLeft = null;
        slice.InitialTop = null;
        slice.LeftLimit = null;
        slice.TopLimit = null;
        slice.nextSliceDirection = null;
        slice.prevSliceDirection = null;
        slice.nextNumber = 1;


        var currentImage = 0;
        var no_of_images = $("#" + element + " ul").children().size();
        var slicesGenerated = null;
        var nextImgSrc = null;

		 for (var i = 1; i < no_of_images+1; i++) {
			$('.innerTR').append('<td id="image'+i+'"><img src="http://ah-arch.com/css/images/dot-w.png" /></td>');
		 }
        switch (options.direction) {
            case "bottomUp":
                slice.Width = elementWidth / options.numberOfSlices;
                slice.Height = elementHeight;
                slice.InitialLeft = 0;
                slice.InitialTop = elementHeight;
                slice.TopLimit = 0;
                slice.LeftLimit = null;
                slice.nextSliceDirection = "bottomUp";
                slice.prevSliceDirection = "topDown";
                break;
            case "topDown":
                slice.Width = elementWidth / options.numberOfSlices;
                slice.Height = elementHeight;
                slice.InitialLeft = 0;
                slice.InitialTop = -(elementHeight);
                slice.TopLimit = 0;
                slice.LeftLimit = null;
                slice.nextSliceDirection = "topDown";
                slice.prevSliceDirection = "bottomUp";
                break;
            case "leftRight":
                slice.Height = elementHeight / options.numberOfSlices;
                slice.Width = elementWidth;
                slice.InitialLeft = -(elementWidth);
                slice.InitialTop = 0;
                slice.LeftLimit = 0;
                slice.nextSliceDirection = "leftRight";
                slice.prevSliceDirection = "rightLeft";
                slice.TopLimit = null;
                break;
            case "rightLeft":
                slice.Height = elementHeight / options.numberOfSlices;
                slice.Width = elementWidth;
                slice.InitialLeft = elementWidth;
                slice.InitialTop = 0;
                slice.LeftLimit = 0;
                slice.TopLimit = null;
                slice.nextSliceDirection = "rightLeft";
                slice.prevSliceDirection = "leftRight";
                break;
        }

        /*creating next and previous buttons*/
        var navigation = '<div><span id="' + options.prevID + '"><a href=\"javascript:void(0);\">Prev</a></span>';
        navigation += '<span id="' + options.nextID + '"><a href=\"javascript:void(0);\">Next</a></span></div>';
        //$("#" + element).after(navigation);

        /*init() section*/
        $("#" + element + " ul").css("display", "none");
        nextImgSrc = $("#" + element + " ul").children().eq(currentImage).children().eq(0).attr("src");
        slicesGenerated = createSlices(element, options.numberOfSlices, slice, nextImgSrc, true);
        animateSlices(slicesGenerated, slice.LeftLimit, slice.TopLimit, options.duration, options.sliceDelay, false);

 var timer = null;
        if(options.auto){
              timer = setInterval(function(){   autoNext();   }, options.delay);
        }

        function autoNext(){
            currentImage = (currentImage + 1) % no_of_images;
            nextImgSrc = $("#" + element + " ul").children().eq(currentImage).children().eq(0).attr("src");

            garbageCollectGeneratedSlices(slicesGenerated, slice, options, true);
            slicesGenerated = createSlices(element, options.numberOfSlices, slice, nextImgSrc, true);
            animateSlices(slicesGenerated, slice.LeftLimit, slice.TopLimit, options.duration, options.sliceDelay, false);
}

        function autoPrev(){
            currentImage = (currentImage - 1);
            if (currentImage < 0)
                currentImage = no_of_images - 1;
            nextImgSrc = $("#" + element + " ul").children().eq(currentImage).children().eq(0).attr("src");

            garbageCollectGeneratedSlices(slicesGenerated, slice, options, false);
            slicesGenerated = createSlices(element, options.numberOfSlices, slice, nextImgSrc, false);
            animateSlices(slicesGenerated, slice.LeftLimit, slice.TopLimit, options.duration, options.sliceDelay, false);     
}


        /*clicked on next*/
        $("a", "#" + options.nextID).click(function() {
           options.auto = false;
            clearInterval(timer);
            autoNext();
        });

        /*clicked on previous*/
        $("a", "#" + options.prevID).click(function() {
            options.auto = false;
            clearInterval(timer);
            autoPrev();                  
        });

    }; //end of function slicer

    /*Following are the utility functions used to get the effects. You can customize them as per your requirement.*/
    function garbageCollectGeneratedSlices(slices, slice, options, next) {
        var direction = null;
        if (next)
            direction = slice.nextSliceDirection;
        else
            direction = slice.prevSliceDirection;
        if (slices != null) {
            switch (direction) {
                case "bottomUp":
                    animateSlices(slices, null, (-slice.Height), options.duration, options.sliceDelay, true);
                    break;
                case "topDown":
                    animateSlices(slices, null, slice.Height, options.duration, options.sliceDelay, true);
                    break;
                case "leftRight":
                    animateSlices(slices, slice.Width, null, options.duration, options.sliceDelay, true);
                    break;
                case "rightLeft":
                    animateSlices(slices, (-slice.Width), null, options.duration, options.sliceDelay, true);
                    break;
                default:
                    for (var i = 0; i < slices.length; i++) {
                        $("#" + slices[i]).remove();
                    }
                    break;
            }
        }
    } //end of function

	var blopNumber = 0;
	var blopNumber2 = 0;
	
    function createSlices(parent, no_of_slices, slice, nextImgSrc, next) {
        var Left = null;
        var Top = null;
		
		if(blopNumber % 10 == 0 && blopNumber!=0){
			blopNumber2++;
			$("#image10").html('<img src="http://ah-arch.com/css/images/dot-w.png" />');
		}
		lastOne = slice.nextNumber - 1; 
		num1 = slice.nextNumber - (10 * blopNumber2);
		num2 = lastOne - (10 * blopNumber2);
		$("#image"+num2).html('<img src="http://ah-arch.com/css/images/dot-w.png" />');
		$("#image"+num1).html('<img src="http://ah-arch.com/css/images/dot-b.png" />');
		blopNumber++;
		
        if (next) {
            Left = slice.InitialLeft;
            Top = slice.InitialTop;
        }
        else {
            Left = -slice.InitialLeft;
            Top = -slice.InitialTop;
        }
        var slices = new Array(no_of_slices);

        for (var i = 0; i < slices.length; i++) {
            slices[i] = slice.Name + slice.nextNumber;
            var ele = document.createElement('div');
            ele.setAttribute("id", slices[i]);
            ele.style.position = "absolute";
            ele.style.overflow = "hidden";
            ele.style.width = slice.Width + "px";
            ele.style.height = slice.Height + "px";
            ele.style.left = Left + "px";
            ele.style.top = Top + "px";

            if (slice.InitialLeft == 0) {
                ele.style.backgroundImage = "url(" + nextImgSrc + ")";
                ele.style.backgroundPosition = (-Left) + "px 0px";
                ele.style.backgroundRepeat = "no-repeat";
                Left = Left + slice.Width;
            }
            else {
                ele.style.backgroundImage = "url(" + nextImgSrc + ")";
                ele.style.backgroundPosition = "0px " + (-Top) + "px";
                ele.style.backgroundRepeat = "no-repeat";
                Top = Top + slice.Height;
            };
            document.getElementById(parent).appendChild(ele);
            ++(slice.nextNumber);
        }
        return (slices);
    } //end of function

    function animateSlices(slices, leftLimit, topLimit, duration, delay, removeSlicesAfterAnimation) {
        var timing = 1;
        var currentElement = null;
        for (var i = 0; i < slices.length; i++) {
            currentElement = $("#" + slices[i]);
            animator.move(currentElement, leftLimit, topLimit, duration, timing, removeSlicesAfterAnimation);
            timing = timing + delay;
        }
        return true;
    } //end of function 
  
})( jQuery );


						var animator = new Object();
						animator.move = function(ele, leftLimit, topLimit, duration, delay, remove) {
							setTimeout(function() {
								if (leftLimit == null) {
									if (remove) { ele.animate({ top: topLimit }, duration, null, function() { $(this).remove(); });  }
									else { ele.animate({ top: topLimit }, duration); }
								}
								else {
									if (remove) { ele.animate({ left: leftLimit }, duration, null, function() { $(this).remove(); }); }
									else { ele.animate({ left: leftLimit }, duration); }
								}
							}, delay);
						}	
				culheights = false;
				
			function culheight(){
				
				/*
				var img = new Array();
				i = 0;
				$("img").each(function(){
					i++;
					img[i] = new Image()
					img[i] = $(this).attr("src");
				});
				
				gova = $("#thecontact").height();
				gova = gova + 40;
				$(".mainPic").height(gova+"px");
				*/
			}				
				
				$(document).ready(function() {

							culheight();		
				
					if ($("#mainSlider")){
					
	
							
					

							$("#mainSlider").slicer({
								direction: 'leftRight',
								sliceDelay: 20,
								delay: 5500,
								duration: 1000,
								numberOfSlices: 1
							});

					
					}
					

					
				});
