<?php

	# Moved!
	header("Location: moved_to_portal.php");
	exit;

	require_once("/home/data/httpd/eclipse-php-classes/system/app.class.php");
	require_once("/home/data/httpd/eclipse-php-classes/people/ldapperson.class.php");
	require_once("/home/data/httpd/eclipse-php-classes/menu/menu.class.php");
	require_once("/home/data/httpd/eclipse-php-classes/system/dbconnection_ipzilla_rw.class.php");
	require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_foundation_ro.class.php";

	#*****************************************************************************
	#
	# cq_part1.php
	#
	# Author: 		Denis Roy & others
	# Date:			2005-11-07
	#
	# Description: Contribution questionnaire that feeds the IPZilla database.
	#
	#
	#****************************************************************************

	$App 	= new App();
	$App->runStdWebAppCacheable();
	$ErrorMessage = "";
	
	$LDAPPerson = new LDAPPerson();
	$LDAPPerson = $LDAPPerson->redirectIfNotLoggedIn();
	
	$_TYPE 	= isset($_POST['contributionType']) ? $_POST['contributionType'] : "";
	
	$TypeString = "";
	
	if($_TYPE == "") {
		include("inc/en_cq_type.php");
	}
	else {
		$dbc = new DBConnectionIPZillaRW();
		$dbh = $dbc->connect();
	
		# For PMC leads
		$dbcF    = new DBConnectionFoundation();
		$dbhF    = $dbcF->connect();
		
			
		# get list of committers and projects
		$rs_profiles = "";
		include("cq_common.php");  # will populate $rs_profiles
		
	
		# get list of projects for drop-down
		$SQL = "SELECT 
					id,
					name,
					product_id,
					description
				FROM components
				ORDER BY name";
		$rs_components = mysql_query($SQL, $dbh);
	
		# get list of pmc
		$SQL = "SELECT
						PER.PersonID
				FROM People AS PER
					INNER JOIN PeopleProjects AS PRJ ON PRJ.PersonID = PER.PersonID
						WHERE PRJ.Relation IN ('PD', 'PM') AND PRJ.InactiveDate IS NULL";
		$rs_PMC = mysql_query($SQL, $dbhF);
	
		$extern_id_csv = "";
		while($myrow = mysql_fetch_assoc($rs_PMC)) {
	
			if($extern_id_csv != "") {
				$extern_id_csv .= '","';
			}
			$extern_id_csv .= $myrow['PersonID'];
		}
		$extern_id_csv = '"' . $extern_id_csv . '"';
		
		$SQL = "SELECT DISTINCT
					PRF.userid, 
					PRF.login_name, 
					PRF.realname, 
					PRF.extern_id 
				FROM profiles as PRF
				WHERE PRF.extern_id IN ($extern_id_csv)
				ORDER BY realname";
		$rs_projectleads = mysql_query($SQL, $dbh);
	
		if($_TYPE == "EPL") {
			$TypeString = "EPL code only";
			include("inc/en_cq_epl.php");
		}
		else {
			$TypeString = "Non-EPL code only";
			include("inc/en_cq_non-epl.php");
		}
	}
?>
