/*
 * Standard field JS
 * Date: 2010.07.20
 * Updated: 2010.11.16 -- intl
 *          2011.05.05 -- indcode
 */

$(document).ready(function(){
        occInit();   
        checkValOcp();
	checkValInd();
        $('select#ocpcode1_dt').change(function(){
	    setHasJS('D');
	    checkValOcp(); 
	});

        $('select#indcode1_dt').change(function(){
	    checkValInd(); 
	});
        $('input[name=ocpcode_other]').blur(function(){ checkValOcp(); });
        $('input[name=indcode_other]').blur(function(){ checkValInd(); });
});

//onload checks. Set has_js
function occInit() {
        var p = $("input[name='p']").val();
        $('div#ocpcode_wrap, div#indcode_wrap').show();

	var hasjs = $('#has_js').val();
        var val_jone = $('input[name=ocpcode1]').val();

        if (val_jone != '') { setHasJS('C'); }
        else if (hasjs == 'N') { setHasJS('Y'); }

	//if (hasjs == 'N') { $('#has_js').val("Y"); }
}

//testing has_js onchange instead of onload 3/15
function setHasJS(v) {
	var hasjs = $('#has_js').val();
	$('#has_js').val(v);
}

//ajax call to return OCPCODE or html, pass in val_one,
//iterate through array to populate ocpcode2_dt and ocpcode3_dt
function checkValOcp() {
        //Get level1 values and load html
        var val_one = $('select#ocpcode1_dt').val();

	//See if already set from prefill
        var val_jone = $('input[name=ocpcode1]').val();
        var val_jtwo = $('input[name=ocpcode2]').val();
        var val_jthr = $('input[name=ocpcode3]').val();

        var lang = $('input[name=ocpcode_lang]').val();
	if (lang == undefined) { lang = "eng"; }

        //Load level1

        if (!val_one && !val_jone) {

   	      //Set select to what is in prefill and clear out
      	      //prefill so user can switch options
   	      if (val_jone != '') { 
                   $('select#ocpcode1_dt').val(val_jone);
                   $('input[name=ocpcode1]').val('');
              }

	      var val = $('select#ocpcode1_dt').val();

              $('div#ocpcode_level2').html('');
              $('#ocpcode_level1').load('/c/getjob_intl.mpl', {level: '1', val: val, lang: lang}, function(h){
                   $('select#ocpcode1_dt').change(function(){ 
	                setHasJS('A');
			checkValOcp();
		   });
                   //Hide level2 div [secondary]
                   $('div#ocpcode_secondary').hide();
              });
        }

        //Load level2 and level3
        else {
	      //for prefill
              if (val_one == '')  { val_one = val_jone; }

              $('#ocpcode_level1').load('/c/getjob_intl.mpl', {level: '1', val: val_one, lang: lang}, function(h){
	           if (val_jone != '') { 
                           $('select#ocpcode1_dt').val(val_jone);
                           $('input[name=ocpcode1]').val('');
                   }
		   if (!h.match(/matched ocpcode1_dt/)) { $('select#ocpcode1_dt').val('');}
                   setJobVal();
		   $('select#ocpcode1_dt').change(function(){
	                   setHasJS('B');
                           setJobVal();
 		           checkValOcp(); 
		   });
   	      });

              $('#ocpcode_level2').load('/c/getjob_intl.mpl', {level: '2', val: val_one, val2: val_jtwo, val3: val_jthr, lang: lang}, function(h){
  	           if (val_jtwo != '') { 
                           $('select#ocpcode2_dt').val(val_jtwo);
                           $('input[name=ocpcode2]').val('');
                   }

	           if (val_jthr != '') { 
                           $('select#ocpcode3_dt').val(val_jthr);
                           $('input[name=ocpcode3]').val('');
                   }

		   //Clear out hidden input if not matched
		   if (!h.match(/matched ocpcode2_dt/)) { $('select#ocpcode2_dt').val('');}
		   if (!h.match(/matched ocpcode3_dt/)) { $('select#ocpcode3_dt').val('');}
                   setJobVal();
                   //Bind actions
                   $('#ocpcode2_dt, #ocpcode3_dt').change(function(){
               	           setJobVal();
                   });
              });
              //Show secondary div
              $('#ocpcode_secondary').show('fast');
       }

       //Set values for hidden div
       setJobVal();
}

//Set hidden vars
function setJobVal(){
       var myVal1 = $('select#ocpcode1_dt').val();
       var myVal2 = $('select#ocpcode2_dt').val();
       var myVal3 = $('select#ocpcode3_dt').val();

       //if (myVal1 == 'Other' || myVal2 == 'Other' || myVal3 == 'Other') {  $('div#ocpcode_other').show('fast'); }
       //else { $('div#ocpcode_other').hide('fast'); }  //$('input[name=ocpcode_other]').val('');

       var otc1 = $.trim($("select#ocpcode1_dt option:selected").text());
       var otc2 = $.trim($("select#ocpcode2_dt option:selected").text());
       var otc3 = $.trim($("select#ocpcode3_dt option:selected").text());

       // ocpcode2 check hash
       // 109,122,133,147,175,19,195,210,222,231,247,259,279,295,30,315,344,356,372,383,39,397,415,48,68,80
       var ocp2hash = {109:'109', 122:'122', 133:'133', 147:'147', 175:'175', 19:'19', 195:'195', 210:'210', 222:'222', 231:'231', 247:'247', 259:'259', 279:'279', 295:'295', 30:'30', 315:'315', 344:'344', 356:'356', 372:'372', 383:'383', 39:'39', 397:'397', 415:'415', 48:'48', 68:'68', 80:'80'};

       if (otc1 == 'Other' || otc2 == 'Other' || otc3 == 'Other'){ $('div#ocpcode_other').show('fast'); }
       else if (myVal1 == 416 || myVal3 == 17){ $('div#ocpcode_other').show('fast'); }
       else if (ocp2hash[myVal2] !== undefined) { $('div#ocpcode_other').show('fast'); }
       else { $('div#ocpcode_other').hide('fast'); }  //$('input[name=ocpcode_other]').val('');

       var myValOther = $('input[name=ocpcode_other]').val();

       $('#ocpcode_hidden').html('');
       $('#ocpcode_hidden').append('<input type="hidden" name="ocpcode1" value="'+myVal1+'">');
       $('#ocpcode_hidden').append('<input type="hidden" name="ocpcode2" value="'+myVal2+'">');
       $('#ocpcode_hidden').append('<input type="hidden" name="ocpcode3" value="'+myVal3+'">');

}

//ajax call to return INDCODE html, pass in val_one,
//iterate through array to populate indcode2_dt
function checkValInd() {
        //Get level1 values and load html
        var val_one = $('select#indcode1_dt').val();

	//See if already set from prefill
        var val_ione = $('input[name=indcode1]').val();
        var val_itwo = $('input[name=indcode2]').val();

        var lang = $('input[name=ocpcode_lang]').val();
	if (lang == undefined) { lang = "eng"; }

        //Load level1

        if (!val_one && !val_ione) {

   	      //Set select to what is in prefill and clear out
      	      //prefill so user can switch options
   	      if (val_ione != '') { 
                   $('select#indcode1_dt').val(val_ione);
                   $('input[name=indcode1]').val('');
              }

	      var val = $('select#indcode1_dt').val();

              $('div#indcode_level2').html('');
              $('#indcode_level1').load('/c/getind_intl.mpl', {level: '1', val: val, lang: lang}, function(h){
                   $('select#indcode1_dt').change(function(){ 
			checkValInd();
		   });
                   //Hide level2 div [secondary]
                   $('div#indcode_secondary').hide();
              });
        }

        //Load level2
        else {
	      //for prefill
              if (val_one == '')  { val_one = val_ione; }

              $('#indcode_level1').load('/c/getind_intl.mpl', {level: '1', val: val_one, lang: lang}, function(h){
	           if (val_ione != '') { 
                           $('select#indcode1_dt').val(val_ione);
                           $('input[name=indcode1]').val('');
                   }
		   if (!h.match(/matched indcode1_dt/)) { $('select#indcode1_dt').val('');}
                   setIndVal();
		   $('select#indcode1_dt').change(function(){
                           setIndVal();
 		           checkValInd(); 
		   });
   	      });

              $('#indcode_level2').load('/c/getind_intl.mpl', {level: '2', val: val_one, val2: val_itwo, lang: lang}, function(h){
  	           if (val_itwo != '') { 
                           $('select#indcode2_dt').val(val_itwo);
                           $('input[name=indcode2]').val('');
                   }

		   //Clear out hidden input if not matched
		   if (!h.match(/matched indcode2_dt/)) { $('select#indcode2_dt').val('');}
                   setIndVal();
                   //Bind actions
                   $('#indcode2_dt').change(function(){
               	           setIndVal();
                   });
              });
              //Show secondary div
              $('#indcode_secondary').show('fast');
       }

       //Set values for hidden div
       setIndVal();
}

//Set hidden vars
function setIndVal(){
       var myVal1 = $('select#indcode1_dt').val();
       var myVal2 = $('select#indcode2_dt').val();

       var itc1 = $.trim($("select#indcode1_dt option:selected").text());
       var itc2 = $.trim($("select#indcode2_dt option:selected").text());

       // indcode2 check hash
       // these values = "Other"
       var ind2hash = {100:'100',106:'106',130:'130',15:'15',152:'152',162:'162',177:'177',202:'202',212:'212',223:'223',224:'224',31:'31',49:'49',55:'55',6:'6',65:'65',84:'84'};

       if (itc1 == 'Other' || itc2 == 'Other'){ $('div#indcode_other').show('fast'); }
       else if (myVal1 == 224){ $('div#indcode_other').show('fast'); }
       else if (ind2hash[myVal2] !== undefined) { $('div#indcode_other').show('fast'); }
       else { $('div#indcode_other').hide('fast'); }  //$('input[name=indcode_other]').val('');

       var myValOther = $('input[name=indcode_other]').val();

       $('#indcode_hidden').html('');
       $('#indcode_hidden').append('<input type="hidden" name="indcode1" value="'+myVal1+'">');
       $('#indcode_hidden').append('<input type="hidden" name="indcode2" value="'+myVal2+'">');

}


//Set a random variable and assign a value of A or B to the invisible field
//If the random variable is < 0.5, then assign a value of B (hide)
//If the random variable is >= 0.5 and <= 1, assign a value of A (show)
function genRandom(elemId){
       var rndm = Math.random();
       if (rndm < 0.5) {
              $('#'+elemId).val('B');    
       }
       if(rndm >= 0.5 && rndm <= 1) {
              $('#'+elemId).val('A');
       }
}

