﻿var wLoading = 0; // the 'loading your record...' window handle
var sFirstName_old = ""; 
var sLastName_old = "";
var sDayOfBirth_old = "";

var xmlHttp; 
var requestURL = '/ccsm/ccregvalidate/check_register_page.aspx'; 
var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0; 
var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0; 
var is_opera = ((navigator.userAgent.indexOf("Opera 6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0; 
//netscape, safari, mozilla behave the same??? 
var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0; 

var rowid; var quickno="";
var mode=0; //0=regular, 1=admin-init, 2=admin

function startUp(){
//alert('check for row id=');
    rowid = getParameter("r");
    if (rowid.length>0){

	document.getElementById("c_regSource").value="MarketAdmin";

        if (rowid=='none') 
        { // new project without opportunity 
	    mode=2;
        } 
	else if (rowid.substr(0,7)=='quickno')
	{  //quick no found
           quickno=rowid.substr(8,rowid.length-9);
	   mode=1;
//alert(quickno);
           check_register(quickno,'q');
	   
	}
        else { // new project with opportunity
            mode=1;
//alert('before calling check_register');
            check_register(rowid,'r');
        }
    }
}

function popUp(mypage,myname,w,h){
  var winl = (screen.width-w)/2;
  var wint = (screen.height-h)/2;
  var settings  ='height='+h+',';
      settings +='width='+w+',';
      settings +='top='+wint+',';
      settings +='left='+winl+',';
      settings +='toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0';
  win=window.open(mypage,myname,settings);
  return win;
}

function changeContactInfo(){
//alert('setting registration_seciton');
//alert(mode);
    if (0==mode) {
//alert('setting display=none');
        document.getElementById("registration_section").style.display = "none";
    } else {
        document.getElementById("registration_section").style.display = "inline";
    }
    //document.getElementById("c_projectCode").value="";
}

function abortRegistration(){
    window.location="/ccsm/ccregvalidate/cancelregister.html"
}

function hideDayOfBirth(){
    document.getElementById("dayofbirth_section").style.display = "none";
}


function getParameter(name) {
   var url = window.location.href;
   var paramsStart = url.indexOf("?");

   if(paramsStart != -1){

      var paramString = url.substr(paramsStart + 1);
      var tokenStart = paramString.indexOf(name);

      if(tokenStart != -1){

         paramToEnd = paramString.substr(tokenStart + name.length + 1);
         var delimiterPos = paramToEnd.indexOf("&");

         if(delimiterPos == -1){
            return paramToEnd;
         }
         else {
            return paramToEnd.substr(0, delimiterPos);
         }
      }
      return "";
   }
   return "";
}

function SetSelection(formName,fieldName,value){
    if(value=="") {
        document.forms[formName].elements[fieldName].options[0].selected = true;
    } else {	        
	    for(var loop = 0; loop < document.forms[formName].elements[fieldName].length; loop++){
		    if(document.forms[formName].elements[fieldName].options[loop].innerHTML == value ||
			    document.forms[formName].elements[fieldName].options[loop].value == value ){
			    document.forms[formName].elements[fieldName].options[loop].selected = true;
		    }
	    }
	}
}

function check_register(rqid,typ){ 

    if (typeof rqid == "undefined") {
        rqid = "";
    }
	

    var sFirstName; 
    var sLastName;
    var sDayOfBirth;
    var sWebPageName;
    var sWebPageType;
    var sPrjCode;

    sFirstName = document.getElementById('c_firstname').value;
    sLastName = document.getElementById('c_lastname').value;
    sDayOfBirth = document.getElementById('c_dayofbirth').value;
    sWebPageName = document.getElementById('c_webpagename').value;
    sWebPageType = document.getElementById('c_webpagetype').value;
    sPrjCode = document.getElementById('c_projectCode').value;

	if ((1==mode) || (sFirstName.length > 0 && sLastName.length > 0 && sDayOfBirth.length > 0 && (sFirstName != sFirstName_old || sLastName != sLastName_old || sDayOfBirth != sDayOfBirth_old))) { 

        if (1==mode) { mode = 2; }
        
		//Append the name to search for to the requestURL 
		var url = requestURL + '?f=' + escape(sFirstName) + '&l=' + escape(sLastName) + '&d=' + escape(sDayOfBirth) + '&p=' + escape(sWebPageName) + '&t=' + escape(sWebPageType) + '&c=' + escape(sPrjCode) + '&'+typ+'=' + escape(rqid); 

		//Create the xmlHttp object to use in the request 
		//stateChangeHandler will fire when the state has changed, i.e. data is received back 
		// This is non-blocking (asynchronous) 
		xmlHttp = GetXmlHttpObject(stateChangeHandler); 

        //Show the progress indicator
        showProgressIndicator(true);
         
		//Send the xmlHttp get to the specified url 
//alert('url=');
//alert(url);
		xmlHttp_Get(xmlHttp, url); 
	} 
	else { 
        showProgressIndicator(false);
	} 
} 

//stateChangeHandler will fire when the state has changed, i.e. data is received back 
// This is non-blocking (asynchronous) 
function stateChangeHandler() 
{ 
	//readyState of 4 or 'complete' represents that data has been returned 
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){ 
		//Gather the results from the callback 
		var strResponse = xmlHttp.responseText; 
		var strResult = new Array();
		var skipUpdate = false;
	
        strResult = strResponse.split('|');


		if ((strResult[0]=='True') && (0==mode)) {
		    changeContactInfo(); //hide stuff by default
		    popUp("/ccsm/ccregvalidate/register_msg.html","register_msg",400,200);
        }
        
	if (quickno.length==0)
	{
        skipUpdate = document.getElementById('c_email').value.length>0
                  || document.getElementById('c_company').value.length>0
                  || document.getElementById('c_home_ph').value.length>0
                  || document.getElementById('c_work_ph').value.length>0
                  || document.getElementById('c_apt').value.length>0
                  || document.getElementById('c_address').value.length>0
                  || document.getElementById('c_city').value.length>0
                  || document.getElementById('c_province').value.length>0
                  || document.getElementById('c_postal_code').value.length>0;
	}
	else
           skipUpdate=false;

        if (!skipUpdate)
        {                      
		    document.getElementById('c_email').value = strResult[2];
		    if (document.getElementById('c_email').value!="") {
		        document.getElementById('c_email').disabled = false;
		        document.getElementById('c_noemailaddress').checked = false;
		    }
		    document.getElementById('c_company').value = strResult[3];
		    document.getElementById('c_home_ph').value = strResult[4];
		    document.getElementById('c_work_ph').value = strResult[5];
		    document.getElementById('c_apt').value = strResult[6];
		    document.getElementById('c_address').value = strResult[7];
		    document.getElementById('c_city').value = strResult[8];
		    document.getElementById('c_province').value = strResult[9];
		    SetSelection('contact','c_country',strResult[10]);
		    document.getElementById('c_postal_code').value = strResult[11];
        }
        		
		document.getElementById('c_contactid').value = strResult[1];
		document.getElementById('c_firstname').value = strResult[12];
		document.getElementById('c_lastname').value = strResult[13];
		SetSelection('contact','c_dayofbirth',strResult[14]);
//alert(mode);
        
        if (mode>0) {
            changeContactInfo();
//            hideDayOfBirth();
        }

        sFirstName_old = strResult[12];
        sLastName_old = strResult[13];    
        sDayOfBirth_old = strResult[14];
        
        showProgressIndicator(false);
	} 

} 

// XMLHttp send GET request 
function xmlHttp_Get(xmlhttp, url) { 
	xmlhttp.open('GET', url, true); 
	xmlhttp.send(null); 
} 

function GetXmlHttpObject(handler) { 
	var objXmlHttp = null;    //Holds the local xmlHTTP object instance 

	//Depending on the browser, try to create the xmlHttp object 
	if (is_ie){ 
		//The object to create depends on version of IE 
		//If it isn't ie5, then default to the Msxml2.XMLHTTP object 
		var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'; 
         
		//Attempt to create the object 
		try{ 
			objXmlHttp = new ActiveXObject(strObjName); 
			objXmlHttp.onreadystatechange = handler; 
		} 
		catch(e){ 
		//Object creation errored 
			alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled'); 
			return; 
		} 
	} 
	else if (is_opera){ 
		//Opera has some issues with xmlHttp object functionality 
		alert('Opera detected. The page may not behave as expected.'); 
		return; 
	} 
	else{ 
		// Mozilla | Netscape | Safari 
		objXmlHttp = new XMLHttpRequest(); 
		objXmlHttp.onload = handler; 
		objXmlHttp.onerror = handler; 
	} 
     
	//Return the instantiated object 
	return objXmlHttp; 
} 

function c_noemailaddress_onclick() {

    if (document.getElementById('c_noemailaddress').checked) {
        document.getElementById('c_email').value="";
        document.getElementById('c_email').disabled=true;
    } else {
        document.getElementById('c_email').disabled=false;
    }
}

function showProgressIndicator(bShow) {
    if (bShow) 
    {
        document.getElementById('h_closeloading').value = "0";
		wloading = popUp('/ccsm/ccregvalidate/loading_msg.html','loading_msg',300,100);
    } 
    else
    {
        document.getElementById('h_closeloading').value = "1";
        // the progress indicator webpage will poll the h_closeloadig value to 
        // see if it should close itself.
    }
}        

function pause(millisecondi)
{
    var now = new Date();
    var exitTime = now.getTime() + millisecondi;

    while(true)
    {
        now = new Date();
        if(now.getTime() > exitTime) return;
    }
}

// End --------------------------------------------------------------------------
