////////////////////////////////////////////////////////////////////////////////
//
//  Licensed to the Apache Software Foundation (ASF) under one or more
//  contributor license agreements.  See the NOTICE file distributed with
//  this work for additional information regarding copyright ownership.
//  The ASF licenses this file to You under the Apache License, Version 2.0
//  (the "Licens"); you may not use this file except in compliance with
//  the License.  You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.utils.css
{
    import org.apache.royale.core.IUIBase;
    
    /**
     *  Detect the supported transition event property name for the current
     *  browser so just one event is fired.
     *  
	 *  @langversion 3.0
	 *  @playerversion Flash 10.2
	 *  @playerversion AIR 2.6
	 *  @productversion Royale 0.9.6
     *  @royalesuppressexport
     *  @royaleignorecoercion org.apache.royale.core.IUIBase 
     */
    COMPILE::JS
    public function transitionEventAvailable(c:IUIBase):String
    {
        var transitionEvent:String = "";
        
        var transitions:Object = {
            "transition"      : "transitionend",
            "OTransition"     : "oTransitionEnd",
            "MozTransition"   : "transitionend",
            "WebkitTransition": "webkitTransitionEnd"
        }

        for (var t:String in transitions) {
            if (c.positioner.style[t] !== undefined) {
                transitionEvent = transitions[t];
            }
        }
        
        return transitionEvent;
    }
}
