

$.fn.pngFix = function() {
  if (!$.browser.msie || $.browser.version >= 9) { return $(this); }

  return $(this).each(function() {
        var src = $(this).css('background-image');
		$(this).css('background-image', '/_media/backgrounds/transparent.gif');
        $(this).css('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='crop',src='" + src + "')");
  });
};

 $(document).ready(function(){
	$('.animate').each(function(index) {  
		animate($(this));	
					
		});
		
		
		
$("#requestAppLink").mouseenter(function(){
	if ($.browser.msie && $.browser.version < 9){
	 return false;	
	}
	$(this).find('span').animate({opacity: '.9',backgroundPosition: '0% 0px'},{
	queue: false,
	duration: 1000,
	easing: 'easeOutBounce'});
	
}
	).mouseleave(function(){
		if ($.browser.msie && $.browser.version < 9){
	 return false;	
	}
		$(this).find('span').stop().animate({opacity: '0',backgroundPosition: '75% 0px'});
	});

	});
	
function extractUrl(input)
{
 // remove quotes and wrapping url()
 return input.replace(/"/g,"").replace(/url\(|\)$/ig, "");
}
	
function animate(ele){
	
	if ($.browser.msie && $.browser.version < 9){
		$(ele).css({'visibility':'visible'});
	
	}else{
	
	//animate('#overlay');
	var classes = ele.attr("class");
	
	var delay = classes.match(/\bdelay-\d/gi);
	if(delay) delay = delay.toString().match(/\d/g).toString();
	else delay = 2;
	
	var duration = classes.match(/\bduration-\d/gi);
	if(duration) duration = duration.toString().match(/\d/g).toString();
	else duration = 2;


	
	var backgroundImage = extractUrl($(ele).css("background-image"))
	var backgroundPosition = $(ele).css('background-position');
	var backgroundRepeat = $(ele).css('background-repeat');
	//console.log(backgroundImage);
	
	
	//$(ele).html('<div></div>');
	//$('div', ele).css({'background-image': backgroundImage,'background-position': backgroundPosition,'background-repeat': backgroundRepeat, 'width': $(ele).css("width"), 'height':$(ele).css("height") });
	
	var animatedElement = getStyles(ele);
	ele.addClass('start');
	
	var startproperties = getStyles($('.start'));
	//ele.removeClass("start");
	if ($.browser.msie && $.browser.version < 9){
		if(backgroundImage != "none"){
			$(ele).css({"background-image" : "none", "text-indent" : "0"});
			$(ele).html("<img src='"+backgroundImage+"' style='display:block !important';>");
		}
	}
	
	//console.log(animatedElement[2]);
	var id = animatedElement[0].id;
	var fadeIn;
	//console.log("duration = ");
	var object = {};
	$.each(animatedElement[1].properties, function() {
		  $.each(this, function(k, v) {
			  /*if(k.toString() == 'opacity' && v.toString() == '1'){	
				  fadeIn = true;
			  }else{
				object[k.toString()] = v.toString();
			  }*/
			  object[k.toString()] = v.toString();
			 // console.log(object);
		});
	});
	
	
	setTimeout(function(){
		$(ele).css({'visibility':'visible'}).hide();
		//$(ele).find(".animate").css({'visibility':'visible'});
		//console.log(JSON.stringify(object));
		//console.log(ele);
		$(ele).animate(object,{
			queue: false,
			duration: duration * 1000,
			easing: 'easeOutSine'}).show()//;
		
 		},delay * 1000);	
	}
	
}





function getStyles(ele) {
    //alert(ele)
    var styles = "";
    var attr = ['opacity:XX', 'width:0', 'height:0', 'top:auto', 'right:auto', 'bottom:auto',
        'left:auto','-webkit-animation-delay:auto','-webkit-animation-duration:auto'];
	var jsonData = [];
	var childData = [];
	var delay;
	var duration;
    for (var i = 0; i < attr.length; i++) {
        var styles;
		
        var keyValue = attr[i].split(':');
		var key = keyValue[0];
        var returnedstyle = ele.css(keyValue[0]);
		if (key == '-webkit-animation-delay') {
			delay = parseFloat(returnedstyle)*1000;
			//console.log(delay);
		}
		if (key == '-webkit-animation-duration') {
			duration = parseFloat(returnedstyle)*1000;
			//console.log(duration);
		}
        if (returnedstyle != keyValue[1]) {
		//	console.log(keyValue[0] + " " + returnedstyle);
			var obj = jQuery.parseJSON('{"'+keyValue[0] + '" : "' + returnedstyle + '"}');
			childData.push(obj);
        }

    }
	
	jsonData.push({"id": "#overlay"});
	
	jsonData.push({properties: childData});

	return jsonData;
		

};


/**
 * @author Alexander Farkas
 * v. 1.22
 */


(function($) {
    if(!document.defaultView || !document.defaultView.getComputedStyle){ // IE6-IE8
        var oldCurCSS = $.curCSS;
        $.curCSS = function(elem, name, force){
            if(name === 'background-position'){
                name = 'backgroundPosition';
            }
            if(name !== 'backgroundPosition' || !elem.currentStyle || elem.currentStyle[ name ]){
                return oldCurCSS.apply(this, arguments);
            }
            var style = elem.style;
            if ( !force && style && style[ name ] ){
                return style[ name ];
            }
            return oldCurCSS(elem, 'backgroundPositionX', force) +' '+ oldCurCSS(elem, 'backgroundPositionY', force);
        };
    }
    
    var oldAnim = $.fn.animate;
    $.fn.animate = function(prop){
        if('background-position' in prop){
            prop.backgroundPosition = prop['background-position'];
            delete prop['background-position'];
        }
        if('backgroundPosition' in prop){
            prop.backgroundPosition = '('+ prop.backgroundPosition;
        }
        return oldAnim.apply(this, arguments);
    };
    
    function toArray(strg){
        strg = strg.replace(/left|top/g,'0px');
        strg = strg.replace(/right|bottom/g,'100%');
        strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
        var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
        return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
    }
    
    $.fx.step. backgroundPosition = function(fx) {
        if (!fx.bgPosReady) {
            var start = $.curCSS(fx.elem,'backgroundPosition');
            if(!start){//FF2 no inline-style fallback
                start = '0px 0px';
            }
            
            start = toArray(start);
            fx.start = [start[0],start[2]];
            var end = toArray(fx.end);
            fx.end = [end[0],end[2]];
            
            fx.unit = [end[1],end[3]];
            fx.bgPosReady = true;
        }
        //return;
        var nowPosX = [];
        nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
        nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];           
        fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

    };
})(jQuery);

