<?php
function getVersionList($allList, $pkglist, $baseVersion, $pfName, $sdkName) {
	$outputList = array();
	
	foreach ( $pkglist as $k => $v ) {
		$jumpFlag = false;
		if ($k == "1" && empty ( $baseVersion ))
			continue;
		$oldVer = $v;
		$oldVerNum = version2Num ( $oldVer );
	
		$historyList = $allList [$k];
	
		// 版本历史记录文件，版本号须为倒序排列
		$updateUrlList = array ();
		$installObj = null;
		$umObj = null;
		foreach ( $historyList as $verObj ) {
			$specialObj = null;
			$hasSdk = false;
			if (isset ( $verObj [$sdkName] )) {
				$specialObj = $verObj [$sdkName];
				$hasSdk = true;
				if (isset ( $specialObj [$pfName] )) {
					$specialObj = $specialObj [$pfName];
					$verObj = $specialObj;
				}else{
					$specialObj = null;
				}
			}
	
			if ((($hasSdk && !$specialObj) || !$hasSdk) && $verObj['default']){
				$verObj = $verObj ['default'];
			}
	
			$newVerNum = version2Num ( $verObj ["version"] );
	
			if ($newVerNum <= $oldVerNum) {
				break;
			}
	
			$curLevel = $verObj ["level"];
			if (is_array ( $verObj ['url'] )) {
				$len = count ( $verObj ['url'] );
				$verObj ['url'] = $len > 1 ? $verObj ['url'] [mt_rand ( 0, $len - 1 )] : ($len == 1 ? $verObj ['url'] [0] : "");
			}
	
			if ($curLevel == 2 || empty ( $verObj ['url'] )){
				$updateUrlList = array ();
			}
			if ($curLevel == 3 || $curLevel == 4 || $curLevel == 5) {
				$installObj = $verObj;
				continue;
			}
	
			if ($installObj && isset($verObj['um']) && $verObj['um'] == 1){
				$umObj = $verObj;
				continue;
			}
	
			array_push ( $updateUrlList, $verObj );
			if (empty ( $verObj ['url'] )) {
				$jumpFlag = true;
				break;
			}
		}
	
		if ($installObj){
			$updateUrlList = array();
			if ($umObj) {
				array_push ( $updateUrlList, $umObj );
			}else{
				array_push ( $updateUrlList, $installObj );
			}
			$jumpFlag = true;
		}
	
		// 改为顺序排列
		if (count ( $updateUrlList ) > 0) {
			$updateUrlList = array_reverse ( $updateUrlList );
			// level=3只下载安装包
			if ($jumpFlag) {
				$outputList = array ();
				$outputList [$k] = $updateUrlList;
				break;
			} else {
				$outputList [$k] = $updateUrlList;
			}
		}
	}
	if (count ( $outputList ) > 0) {
		return stripslashes ( json_encode ( $outputList ) );
	}
}
?>