function openPage(pageurl, width, height) {
	pageoptions = "top=20, left=20, innerHeight=" + height +", innerWidth=" + width + ", location=yes, menubar=yes, resizable=yes, scrollbars=yes, toolbar=yes, location=yes, titlebar=yes";
	window.open(pageurl, '', pageoptions);
}

function popupPreview(urltxt, wid, high, newSite) 
{ 		
  wid+=23;
  high+=34;
  var flagvar=0;
 
  if (newSite) {
    confirmWin=window.open(urltxt, "Thandie", 
                         "height=" +high+ ",width="+wid+",directories=no,location=1,menubar=1," +
                         "resizable=yes,status=no,toolbar=0,scrollbars=yes,top=0,left=0");
  }
  else {
    confirmWin=window.open(urltxt, "Thandie", 
                         "height=" +high+ ",width="+wid+",directories=no,location=0,menubar=0," +
                         "resizable=yes,status=no,toolbar=0,scrollbars=yes,top=0,left=0");
  }
  
  if (window.confirmWin)
  { 
    if (window.focus) 
    { 
      if ((navigator.appName.indexOf("Microsoft Internet Explorer")!=-1)
          &&
          (navigator.appVersion.indexOf("4.") != -1)
          &&
          (parent.length>0))
      { 
        window.confirmWin.close(); 
        flagvar=1;
        timevar = setTimeout("openit(urltxt)", 300);      
      }
      else
      {
        confirmWin.focus();
      }
    } 
    else
    {  
      if (navigator.appName.indexOf("Microsoft Internet Explorer") != -1)  // If this is a MSIE Browser
      {  
        if (navigator.appVersion.indexOf("3.") != -1)  // MSIE 3.x
        {
          if (isLoaded == true)
          {
            alert("If the large image does not pop up, press the 'Product Close-up' tab in your task bar, or locate the image browser behind your open window." );
            return;
          }
          else
          {
            alert("If the Site Menu bar does not pop up, press the 'Product Close-up' tab in your task bar, or locate the image browser behind your open window." );
            return;
          } 
        } 
      }
    }
  }          
  else
  {
    confirmWin = window.open(urltxt, "Thandie", 
                             "height=" +high+ ",width="+wid+",directories=no,location=no,menubar=no," +
                   "resizeable=no,status=no,toolbar=no");
    var isLoaded = true;
  }
  
  // This is important for Netscape 2.0 to enable the opener property
  if (flagvar!=1)
  {
    if (confirmWin.opener == null)
    {
      confirmWin.opener = self;
    }
  }
} 

function doSubmit() {
	document.getElementById('submitBttn').className = 'thide'; 
	document.getElementById('submitBttnOff3').className = 'tshow';
	  if(navigator.userAgent.indexOf("Firefox")!=-1)
      {                               
       window.location.reload( true );
      }
}

function doSubmit1() {
	document.getElementById('submitBttn1').className = 'thide'; 
	document.getElementById('submitBttnOff1').className = 'tshow';
	  if(navigator.userAgent.indexOf("Firefox")!=-1)
      {                               
       window.location.reload( true );
      }
}

function doSubmit2() {
	document.getElementById('submitBttn2').className = 'thide'; 
	document.getElementById('submitBttnOff').className = 'tshow';
	  if(navigator.userAgent.indexOf("Firefox")!=-1)
      {                               
       window.location.reload( true );
      }
}
var devryDealers = {
		"1740210":"Arizona#Glendale",
		"220050":"Arizona#Mesa",
		"10564":"Arizona#Phoenix",
		"10567":"California#Alhambra",
		"1131610":"California#Anaheim",
		"219620":"California#Bakersfield",
		"219810":"California#Colton (Inland Empire-Colton)",
		"259370":"California#Daly City",
		"10552":"California#Fremont",
		"219940":"California#Fresno",
		"219990":"California#Irvine",
		"10563":"California#Long Beach",
		"1650410":"California#Oakland",
		"242980":"California#Palmdale",
		"10562":"California#Pomona",
		"219890":"California#Sacremento (Elk Grove)",
		"220200":"California#San Diego",
		"220220":"California#San Jose",
		"144550":"California#Sherman Oaks",
		"10554":"Colorado#Colorado Springs",
		"219840":"Colorado#Greenwood Village (Denver South)",
		"10553":"Colorado#Westminster",
		"219910":"Florida#Fort Lauderdale",
		"220000":"Florida#Jacksonville",
		"220060":"Florida#Miami",
		"10571":"Florida#Miramar",
		"10568":"Florida#Orlando",
		"220140":"Florida#Orlando North",
		"220300":"Florida#Tampa Bay",
		"220310":"Florida#Tampa East",
		"1127420":"Georgia#Alpharetta",
		"219590":"Georgia#Atlanta (Cobb/Galleria)",
		"10566":"Georgia#Decatur",
		"219850":"Georgia#Duluth (Gwinnett)",
		"220290":"Georgia#Stockbridge (Henry County)",
		"10556":"Illinois#Addison",
		"10555":"Illinois#Chicago",
		"219770":"Illinois#Chicago Loop",
		"219790":"Illinois#Chicago O'Hare",
		"219870":"Illinois#Elgin",
		"219950":"Illinois#Gurnee",
		"220090":"Illinois#Naperville",
		"220120":"Illinois#Oakbrook",
		"10557":"Illinois#Tinley Park",
		"219980":"Indiana#Indianapolis",
		"220040":"Indiana#Merrillville",
		"242990":"Kentucky#Louisville",
		"219640":"Maryland#Bethesda",
		"220260":"Michigan#Southfield",
		"220280":"Minnesota#St. Louis Park",
		"10561":"Missouri#Kansas City",
		"220010":"Missouri#Kansas City Downtown",
		"220270":"Missouri#St. Louis",
		"219960":"Nevada#Henderson",
		"10559":"New Jersey#North Brunswick",
		"318410":"New Jersey#Paramus",
		"10558":"New York#Long Island City",
		"243010":"New York#Manhattan Extenstion",
		"219650":"North Carolina#Charlotte",
		"220080":"North Carolina#Morrisville (Raleigh-Durham)",
		"219800":"Ohio#Cincinnati",
		"10560":"Ohio#Columbus",
		"219820":"Ohio#Columbus North",
		"219830":"Ohio#Dayton",
		"1605810":"Ohio#Seven Hills (Rockside)",
		"220130":"Oklahoma#Oklahoma City",
		"220180":"Oregon#Portland",
		"1762610":"Pennsylvania#Cranberry",
		"219920":"Pennsylvania#Fort Washington",
		"243020":"Pennsylvania#King of Prussia",
		"220150":"Pennsylvania#Philadelphia (Center City)",
		"220160":"Pennsylvania#Pittsburgh",
		"220030":"Tennessee#Memphis",
		"220110":"Tennessee#Nashville",
		"219600":"Texas#Austin",
		"219930":"Texas#Fort Worth",
		"10575":"Texas#Houston",
		"219970":"Texas#Houston Galleria",
		"10565":"Texas#Irving",
		"243000":"Texas#Richardson",
		"220190":"Texas#San Antonio",
		"220230":"Utah#Sandy",
		"219580":"Virginia#Arlington (Crystal City)",
		"219670":"Virginia#Chesapeake (South Hampton Roads)",
		"220020":"Virginia#Manassas",
		"219630":"Washington#Bellevue (Seattle)",
		"219900":"Washington#Federal Way",
		"220070":"Wisconsin#Milwaukee",
		"220330":"Wisconsin#Waukesha"
		//"10573":"Alberta#Calgary"
}
var kellerDealers  = {
		"1740410":"Arizona#Glendale",
		"10615":"Arizona#Mesa",
		"243040":"Arizona#Northeast Phoenix",
		"10616":"Arizona#Phoenix",
		"10644":"California#Alhambra",
		"1131810":"California#Anaheim",
		"10656":"California#Colton (Inland Empire-Colton)",
		"259380":"California#Daly City",
		"10577":"California#Fremont",
		"10578":"California#Irvine",
		"10579":"California#Long Beach",
		"1740420":"California#Oakland",
		"243050":"California#Palmdale",
		"10580":"California#Pomona",
		"10639":"California#Sacremento (Elk Grove)",
		"10581":"California#San Diego",
		"147360":"California#San Jose",
		"147370":"California#Sherman Oaks",
		"10621":"Colorado#Colorado Springs",
		"10655":"Colorado#Greenwood Village (Denver South)",
		"10646":"Colorado#Westminster",
		"1130020":"Florida#Fort Lauderdale",
		"147340":"Florida#Jacksonville",
		"10629":"Florida#Miami",
		"10619":"Florida#Miramar",
		"10628":"Florida#Orlando",
		"10585":"Florida#Orlando North",
		"10586":"Florida#Tampa Bay",
		"147380":"Florida#Tampa East",
		"10587":"Georgia#Alpharetta",
		"10635":"Georgia#Atlanta (Cobb/Galleria)",
		"10589":"Georgia#Atlanta (Perimeter)",
		"10588":"Georgia#Atlanta/Buckhead",
		"10590":"Georgia#Decatur",
		"10591":"Georgia#Duluth (Gwinnett)",
		"10648":"Georgia#Stockbridge",
		"10592":"Illinois#Chicago Loop",
		"10593":"Illinois#Chicago O'Hare",
		"10598":"Illinois#Downers Grove",
		"10594":"Illinois#Elgin",
		"10640":"Illinois#Gurnee",
		"10595":"Illinois#Lincolnshire",
		"10623":"Illinois#Naperville",
		"10599":"Illinois#Schaumburg",
		"10597":"Illinois#Tinley Park",
		"10633":"Indiana#Indianapolis",
		"10600":"Indiana#Merrillville",
		"10606":"Maryland#Bethesda",
		"10645":"Minnesota#Edina",
		"10627":"Missouri#Kansas City",
		"10631":"Missouri#Kansas City Downtown",
		"10649":"Missouri#St Louis (West)",
		"10602":"Missouri#St. Louis Park",
		"10636":"Nevada#Henderson",
		"1606020":"New Jersey#North Brunswick",
		"1606030":"New Jersey#Paramus",
		"10622":"New York#Long Island City",
		"10614":"North Carolina#Charlotte",
		"10653":"North Carolina#Morrisville (Raleigh-Durham)",
		"10652":"Ohio#Cincinnati",
		"10604":"Ohio#Columbus",
		"10603":"Ohio#Columbus North",
		"147330":"Ohio#Dayton",
		"243070":"Ohio#Seven Hills (Rockside)",
		"10657":"Oklahoma#Oklahoma City",
		"10632":"Oregon#Portland",
		"1762620":"Pennsylvania#Cranberry",
		"10624":"Pennsylvania#King of Prussia",
		"10642":"Pennsylvania#Philadelphia (Center City)",
		"10634":"Pennsylvania#Pittsburgh",
		"147350":"Tennessee#Memphis",
		"220360":"Tennessee#Nashville",
		"10647":"Texas#Austin",
		"10643":"Texas#Fort Worth",
		"10638":"Texas#Houston",
		"10613":"Texas#Houston Galleria",
		"10605":"Texas#Irving",
		"243060":"Texas#Richardson",
		"10650":"Texas#San Antonio",
		"10658":"Utah#Salt Lake City",
		"220370":"Utah#Sandy",
		"10607":"Virginia#Arlington (Crystal City)",
		"220340":"Virginia#Chesapeake (South Hampton Roads)",
		"10608":"Virginia#Manassas",
		"10610":"Washington#Bellevue (Seattle)",
		"10609":"Washington#Federal Way",
		"10626":"Wisconsin#Milwaukee",
		"10611":"Wisconsin#Waukesha"
}

function processCampusLocation() {
	addOtherCampusOption();
}

function addOtherCampusOption()
{
	var  campusLoc  =  getExactElementChain('select', 'name', 'CampusLocation')[0];
	if(!campusLoc){
		return;
	}
	
	var degreeOfInterest = getExactElementChain('input','name','DegreeOfInterest')[0];
	var listToPickForDealers = devryDealers; // default
	var isDealersListFound = false;
	for(i=campusLoc.options.length -1 ; i>= 0 ; i--){ // iterate to get the online dealer and remove it from the options.
			var selectVal = campusLoc.options[i].value;
			var selectText = campusLoc.options[i].text;
			
			// identifying the dealer list to use
			if(!isDealersListFound){
				if(selectText.indexOf("DeVry University") == 0){
					listToPickForDealers = devryDealers;
						
				}else{
					listToPickForDealers = kellerDealers;
				}

				isDealersListFound = true;
			}
			
			// DEVRY-ONLINE, KELLER ONLINE, ALBERTA, ONLINE-CANADA
			if(selectVal == 10172 || selectVal == 10659 || selectVal == 10573 || selectVal == 259390){// online dealer keyS DEVRY AND KELLER.
				campusLoc.remove(i);
			}else if(degreeOfInterest && degreeOfInterest.value == 'MASTER'){ // remove devry dealers.
				if(selectText.indexOf("DeVry University") == 0){
					campusLoc.remove(i);
				}else{
					campusLoc.options[i].text = truncateToLastName(selectText);// last name  for devry dealers
				}
				listToPickForDealers = kellerDealers;
			}else{
					campusLoc.options[i].text = truncateToLastName(selectText);//last name  for Keller dealers
			}
	}
	
	// create a best/relevant best match
	var bestMatchedOptGroup = document.createElement('optgroup');
	bestMatchedOptGroup.label = "--- BEST MATCHES FOR YOU ---";
	var bestMatchedStateOptGrp; 
	var bestMatchedSate = "";
	// adding default matched options to best matched optgroup
	var isOnlineOptionRendered = false;
	var initialCampusOptionsLength = campusLoc.options.length;
	if(initialCampusOptionsLength > 1){
		for (optCount = 0 ; optCount < campusLoc.options.length; optCount ++) {
			var optElem = campusLoc.options[optCount];
			if(optElem.value == '--- Select One ---' || !listToPickForDealers[optElem.value]){
				continue;
			}
			
			var bestMatchedStateOptGroup ;
			// fetching state for best matched options : 
			if(optCount == 1){
				var dealer = listToPickForDealers[optElem.value];
				bestMatchedSate = dealer.substring(0, (dealer.indexOf('#')));
				bestMatchedStateOptGrp = document.createElement('optgroup');
				bestMatchedStateOptGrp.label = "---"+bestMatchedSate+"---";
			}

			var campusOption = createDealerOption( optElem.text, optElem.value, 'relaventquestionbubbling');
			bestMatchedOptGroup.appendChild(campusOption);
			delete listToPickForDealers[optElem.value];
		}
	}
	// clear the existing list
	removeAllOptions(campusLoc);
	
	// add select one option.
	var selectoneOptn = createDealerOption("--- Select One ---", "--- Select One ---");
	campusLoc.appendChild(selectoneOptn);
	

	// append best matched state optgrp to the list box.
	if(bestMatchedStateOptGrp){
		campusLoc.appendChild(bestMatchedStateOptGrp);
	}
	// append best matched optgrp to the best matched state optgrp.
	campusLoc.appendChild(bestMatchedOptGroup);
	//bestMatchedStateOptGrp.innerHtml = bestMatchedOptGroup;
	
	if(initialCampusOptionsLength == 1) {
		// add online option for the best matched opt group
		var onlineOptngrp = document.createElement('optgroup');
		
		var onlineOptn = "";
		
		if(listToPickForDealers === devryDealers){
			onlineOptn = createDealerOption("DeVry Online", "Online", 'relaventquestionbubbling');			
			onlineOptn.value = "10172"; // devry online
			onlineOptngrp.label = "---Flexible Schedule - DeVry Online---";
		}else {
			onlineOptn = createDealerOption("Keller Online", "Online", 'relaventquestionbubbling');			
			onlineOptn.value = "10659"; // keller online
			onlineOptngrp.label = "---Flexible Schedule - Keller Online---";
		
		}
		
		onlineOptngrp.appendChild(onlineOptn);
		// add Undecided option.
		var undecidedOptn =  createDealerOption("Undecided", "Undecided", 'relaventquestionbubbling');
		onlineOptngrp.appendChild(undecidedOptn);
		campusLoc.appendChild(onlineOptngrp);

		isOnlineOptionRendered = true;
	}
	

	// up to here we have created the preferable campus locations.
	// adding rest of the campuses with grping by state as opt grps.

	for (dealer in listToPickForDealers)
	{
		var textValue = listToPickForDealers[dealer];
		state_name = textValue.substring(0, (textValue.indexOf('#')))
		dealer_name = textValue.substring(textValue.indexOf('#')+1, textValue.length)
		
		// check if this state is in best matched state then apend the dealer in best matched opt grp with out bubbling.
		var optgroup;
		if(state_name == bestMatchedSate){
			optgroup = bestMatchedOptGroup;
		}else{
			optgroup = fetchOptGrp('optgroup',"---"+state_name+"---");
			if(!optgroup) {
				optgroup = document.createElement('optgroup');
				optgroup.label = "---"+state_name+"---";
				campusLoc.appendChild(optgroup);
			}
		}
		
		
		//if(isDealerInPreferredList(optgroup, dealer) == false){
			var optn = createDealerOption(dealer_name, dealer);
			optgroup.appendChild(optn);

		//}
	}
	
	if(!isOnlineOptionRendered) { 
	
		// add online option with an optgrp at the bottom of drop-down: 
		var onlineOptngrp = document.createElement('optgroup');
		
		var onlineOptn = "";
		
		if(listToPickForDealers === devryDealers){
			onlineOptn = createDealerOption("DeVry Online", "Online");
			onlineOptn.value = "10172"; // devry online
			onlineOptngrp.label = "---Flexible Schedule - DeVry Online---";
		}else {
			onlineOptn = createDealerOption("Keller Online", "Online");
			onlineOptn.value = "10659"; // keller online
			onlineOptngrp.label = "---Flexible Schedule - Keller Online---";
		}
		onlineOptngrp.appendChild(onlineOptn);
		// add Undecided option.
		
		
		var undecidedOptn = createDealerOption("Undecided", "Undecided"); //document.createElement("OPTION");
		onlineOptngrp.appendChild(undecidedOptn);
		campusLoc.appendChild(onlineOptngrp);
	}
}

function createDealerOption(optionText,optionValue, optionClassName){
	var optionElem = document.createElement("OPTION");
	optionElem.text = optionText;
	optionElem.innerText = optionText;
	optionElem.label = optionText;
	optionElem.value = optionValue;
	if(optionClassName && "" != optionClassName)
	optionElem.className = optionClassName;
	
	return optionElem;

}

function isDealerInPreferredList(preferedOptgrp, dealerKey)
{	var returnVal = false;
	for(var count = 0; count<preferedOptgrp.childNodes.length; count ++){
		var node = preferedOptgrp.childNodes[count];
		if(dealerKey == node.value){
			returnVal =  true;
			break;
		}
	}
	return returnVal;
}

function truncateToLastName(selectText) {
	var returnval = selectText;
	if(selectText.indexOf('-') != -1 && selectText.indexOf('Select One') == -1){
		selectText = selectText.substring(selectText.indexOf('-')+1 , selectText.length);
		returnval =  selectText;
	}
	
	return returnval;
	
}

function removeAllOptions(selectbox)
{
	var i;
	for(i=selectbox.options.length-1;i>=0;i--)
	{
	selectbox.remove(i);
	}
}
function fetchOptGrp(optgroup, optGrpVal) {
		var elements = document.getElementsByTagName(optgroup);
		for (count = 0; count < elements.length; count++) {
			var optgrpElem = elements[count]
			if (optgrpElem.label == optGrpVal )
			{
				return optgrpElem;
			}
		}
}

// Takes in tag name and value and returns an array containing the elements
function getExactElementChain(tagname, mode, val, notCheckHidden) {
	var elements = document.getElementsByTagName(tagname);
	var retArray = new Array();
	for (var i=0; i<elements.length; i++) {
		if (mode == "name") {
			if (elements[i].name == val ) {
				if (! notCheckHidden ) {
			  	retArray[retArray.length] = elements[i];
			  }
			  else if ( elements[i].type != "hidden" ) {
			  	retArray[retArray.length] = elements[i];
			 }
			}
		}
		else if (mode =="text") {
			if (elements[i].text == val) {
			  retArray[retArray.length] = elements[i]
			}
		}
		else if (mode == "href") {		  
		  if (elements[i].href.indexOf(val) != -1) {
			retArray[retArray.length] = elements[i]
		  }
		}
		else if (mode == "id") {		  
		  if (elements[i].id == val) {
			retArray[retArray.length] = elements[i]
		  }
		}
		else if (mode == "className") {
			if (elements[i].className == val) {
				retArray[retArray.length] = elements[i];
			}
		}
	}
	return retArray;
}

