disp('message','show');
        setClass(message,'message_' + type);
        setOpacity(message, opacity);
        setPosition(message, 'left', 0);
        setPosition(message, 'top', 390);
if(type=='start'){
            bgsound(type, true);
        }else{
            bgsound(type);
        }
var et = setInterval(function(){
            var message_left = getPosition(message,'left');
            processed = processed + 25;
if(processed>=500 && processed<=750){
                opacity = opacity+10;
                setPosition(message, 'left', message_left + 30);
                setOpacity(message, opacity);
            }else if(processed>=soundtime[type] && processed<=soundtime[type]+250){
                opacity = opacity-10;
                setPosition(message, 'left', message_left + 35);
                setOpacity(message, opacity);
            }else if(processed>soundtime[type]+250){
                disp('message','hide');
                clearInterval(et);
                if(typeof(callback)!='undefined'){
                    callback();
                }
            }
},25);
    }
    // 翻牌
    turn = function(id){
        if(is_lock==1){
            return ;
        }
var key = parseInt(id.replace('card',''));
    
        if(leveldata[key]['turn']==0){ // 未翻开
            if(first==-1){  // 第一次翻
                turn_animate(key);
                first = key;
                leveldata[key]['turn'] = 1;
            }else{  // 第二次翻
                turn_animate(key);
                leveldata[key]['turn'] = 1;
                check_turn(key);
            }
        }
}
    // 检查是否翻牌成功
    check_turn = function(key){
        is_lock = 1;
if(leveldata[first]['cardno']==leveldata[key]['cardno']){ // 配对成功
            matchnum ++;
if(matchnum==cardnum){
                var et = setTimeout(function(){
                    message('success', levelup);
                }, 225);
            }
first = -1;
            is_lock = 0;
}else{ // 配对失败,将翻开的牌翻转
var et = setTimeout(function(){
                    turn_animate(first);
                    leveldata[first]['turn'] = 0;
                    turn_animate(key);
                    leveldata[key]['turn'] = 0;
first = -1;
                    
                    if(is_over==0){
                        is_lock = 0;
                    }
}, 300);
        }
    }

