//MAIN JAVASCRIPT FUNCTIONS FILE//
//////////////////////////////////
function checkEnter(e){ //e is event object passed from function invocation
	var charcode;
    if(e && e.which){ //if which property of event object is supported (NN4)
        charcode = e.which //character code is contained in NN4's which property
    }else{
        charcode = event.keyCode //character code is contained in IE's keyCode property
    }

    if(charcode == 13){
        return true;
    }else{
        return false;
    }
}

function disable_ff_enter(e){
	if(checkEnter(e)){
		return false;
	}
}

function ajax_field_pop(serverpage, divid){
    objID = divid;
    obj = document.getElementById(objID);
    var usepage = root_path + serverpage;
    dotheajax(usepage, obj, "POST", "null", "innerHTML");
}

function ajax_load_area(serverpage, divid, loading){
    objID = divid;
    obj = document.getElementById(objID);
    
    if(loading == "t"){
    	obj.innerHTML = "Loading...";
    } else if (loading == "g") {
    	staus_msg(objID, "loading");
    }
    
    var usepage = root_path + serverpage;
    dotheajax(usepage, obj, "POST", "null", "innerHTML");
}

function do_modal_form(title, serverpage, validate_form){
	
    $("#blockui").show();
    
    //$("#modal").fadeIn("fast");
    
	
	var pstr = serverpage.split("?");
    var dopage = root_path + pstr[0];
	var str = pstr[1];
	$.ajax({	
    	type: "POST",
    	url: dopage,
    	data: str,
    	dataType: "html",
    	beforeSend: function(){
    		//$("#loading").show();
    	},
    	success: function(data){
			$("#modalbody").html(data);
	    },
		complete: function(validate_form){
			//$("#loading").hide();
			$("#modal").show();    
    		$("#modal_title").html(title);
			if(validate_form != "false"){
		        validate_form(validate_form);
		    }
		},
		error: function(XMLHttpRequest, textStatus, errorThrown){
			alert("THERE HAS BEEN AN ERROR: " + textStatus + " - " + errorThrown);
		}
	});
    
}

function close_modal(){
    $("#blockui").hide();
    $("#modal").hide();
    $("#modal").removeClass("modal_wide"); 
    $('#modal').addClass('modal'); 
}

function do_approval_form(objID, program, reg_id, mfr_prog, ctrl_domain, brreg_var, brand_reg){
	
	var pos = $("#" + objID).position();
	var width = $("#" + objID).width();

	var dopage = root_path + "user_mgmt/mod_approval-menu.php";
	var str = "program=" + program + "&reg_id=" + reg_id + "&mfr_prog=" + mfr_prog + "&brreg_var=" + brreg_var + "&brand_reg=" + brand_reg + "&ctrl_domain=" + ctrl_domain;

	$.ajax({	
    	type: "POST",
    	url: dopage,
    	data: str,
    	dataType: "html",
    	success: function(data){
			$("#approval_menu").html(data);
	    },
		complete: function(){
			$("#approval_menu").css({"position":"absolute", "left": (pos.left + width - 2) + "px", "top": pos.top + "px"});
			$("#approval_menu").show();    
			
			$(".close_this").click(function(){
				$("#approval_menu").hide();
			});
			
		},
		error: function(XMLHttpRequest, textStatus, errorThrown){
			alert("THERE HAS BEEN AN ERROR: " + textStatus + " - " + errorThrown);
		}
	});

}

function submit_modal_form(formname, serverpage, errordiv, errorpage){
	
	//var str = $("form#" + formname).serialize();
	//alert(ser);
    var str = getformvalues(formname);
    if(proceed == true){
        var objID = "modalbody";
        var dopage = root_path + serverpage;
    }else{
        var objID = errordiv
        var dopage = root_path + errorpage;   
    }
    
    $.ajax({	
    	type: "POST",
    	url: dopage,
    	data: str,
    	dataType: "html",
    	success: function(data){
			$("#" + objID).html(data);
	    },
	    error: function(XMLHttpRequest, textStatus, errorThrown){
			alert("THERE HAS BEEN AN ERROR: " + textStatus + " - " + errorThrown);
		}
	});
    
}

function submit_body_form(formname, serverpage, errordiv, errorpage, target_id){
    var str = getformvalues(formname);
    if(proceed == true){
        var objID = target_id;
        var obj = document.getElementById(objID);
        var dopage = root_path + serverpage + "?" + str;
    }else{
        var objID = errordiv
        var obj = document.getElementById(objID);
        var dopage = root_path + errorpage + "?" + str;   
    }
    dotheajax(dopage, obj, "POST", "null", "innerHTML");
    
}

function submit_body_form_jq(formname, serverpage, errordiv, errorpage, sc_callback){
    var str = getformvalues(formname);
    if(proceed == true){
        //var objID = target_id;
        //staus_msg(objID, "loading");
        //var obj = document.getElementById(objID);
        var dopage = root_path + serverpage;
        
        $.ajax({
        	type: "POST",
        	url: dopage,
        	data: str,
        	success: function(){
        		alert(sc_callback);
        		sc_callback;        	
        	}
        });
        
    }else{
        var objID = errordiv
        var obj = document.getElementById(objID);
        var dopage = root_path + errorpage;   
        
        $("#" + errordiv).load(dopage);
        
    }
    
}

function check_email(purpose){

    var str = getformvalues("form_email");    
    if(proceed == true){
        
        var objID = "modalbody";
        var serverpage = root_path + "user_mgmt/form_ajax-registration.php?" + str;
        var obj = document.getElementById(objID);
        dotheajax(serverpage, obj, "POST", "null", "innerHTML");
        CountryType();
        
    }else{
        var objID = "reg_msg";
        var obj = document.getElementById(objID);
        var dopage = root_path + "user_mgmt/mod_ajax-formerror.php" + "?" + str;
        dotheajax(dopage, obj, "POST", "null", "innerHTML");
    }
    
}

function field_match(field1id, field2id, gid){
        
    var val1 = document.getElementById(field1id).value;
    var val2 = document.getElementById(field2id).value;

    if(val1 != "" && val2 != "" && val2 == val1){
        document.getElementById(gid).innerHTML="<img src='../images/forms/valid_plus.gif' /><input type='hidden' name='" + field2id + "_check' id='" + field2id + "_check' value='true'>";     
    }else{
        document.getElementById(gid).innerHTML="<img src='../images/forms/valid_minus.gif' /><input type='hidden' name='" + field2id + "_check' id='" + field2id + "_check' value='false'>";  
    }
}

function validate(fieldname, thevalue, gid){
    var objID = gid;
    var serverpage = root_path + "user_mgmt/errchk_registration.php" + "?fname=" + fieldname + "&fvalue=" + thevalue;
    var obj = document.getElementById(objID);
    dotheajax(serverpage, obj, "POST", "null", "innerHTML");
}

function validate_field(fieldname, thevalue, gid, val_page){
    var objID = gid;
    var serverpage = root_path + val_page + "?fname=" + fieldname + "&fvalue=" + thevalue;
    var obj = document.getElementById(objID);
    dotheajax(serverpage, obj, "POST", "null", "innerHTML");
}

function validate_add_remove(fieldname){
    var list = document.getElementById(fieldname);
    var valfield = document.getElementById(fieldname + "_check");
    if(list.length >= 1){
        valfield.value = "true";
    }else{
        valfield.value = "false";
    }
}

function validate_form(fobj){
    var objID = document.getElementById(fobj);
    for(var i = 0; i < objID.elements.length; i++){
        
        var fieldname = objID.elements[i].id;
        if(fieldname != '' && fieldname.substr(-6, 6) != "_check" && document.getElementById(fieldname + '_valid') != null && fieldname.substr(-9, 9) != "_selected"){
            value = document.getElementById(fieldname).value;
            //alert(fieldname + " - " + value + " - " + fieldname + '_valid'); 
            validate(fieldname, value, fieldname + '_valid');
        }
        
    }
    
}

function validate_body_form(fobj, validate_page){
    var objID = document.getElementById(fobj);
    for(var i = 0; i < objID.elements.length; i++){
        
        var fieldname = objID.elements[i].id;
        if(fieldname != '' && fieldname.substr(-6, 6) != "_check" && document.getElementById(fieldname + '_valid') != null && fieldname.substr(-9, 9) != "_selected" && document.getElementById(fieldname + '_check').value != 'bypass'){
            value = document.getElementById(fieldname).value;
            validate_field(fieldname, value, fieldname + '_valid', validate_page);
        }
        
    }
    
}

function validate_country(thevalue, gid){

    if(thevalue == "United States"){
        document.getElementById("province_valid").innerHTML = "<input type='hidden' name='province_check' id='province_check' value='true'>";
    }else if(thevalue == "Canada"){
        document.getElementById("state_valid").innerHTML = "<input type='hidden' name='state_check' id='state_check' value='true'>";
    }
    
    var objID = gid;
    var serverpage = root_path + "user_mgmt/errchk_registration.php" + "?fname=country&fvalue=" + thevalue;
    var obj = document.getElementById(objID);
    dotheajax(serverpage, obj, "POST", "null", "innerHTML");
}

function validate_sec_answer(answer, gid){
        
    var email = document.getElementById("my_email").value; 
    var objID = gid;
    var serverpage = root_path + "user_mgmt/errchk_sq.php" + "?sa=" + answer + "&my_email=" + email;
    var obj = document.getElementById(objID);
    dotheajax(serverpage, obj, "POST", "null", "innerHTML");
}

function validate_email_exists(email, gid){
    
    var email = document.getElementById("email_address").value; 
    var objID = gid;
    var serverpage = root_path + "user_mgmt/errchk_email_exists.php" + "?email_address=" + email;
    var obj = document.getElementById(objID);
    dotheajax(serverpage, obj, "POST", "null", "innerHTML");
}

function add_program(){
    var email = document.getElementById("email_1").value;
    var ew_val = document.form_prog.add_ew.checked;
    var cl_val = document.form_prog.add_cl.checked;
    var tr_val = document.form_prog.add_tr.checked;
    
    if(ew_val == true || cl_val == true || tr_val == true){
        var objID = "modalbody";
        var progpage = root_path + "user_mgmt/bot_add-programs.php?email=" + email + "&ew_val=" + ew_val + "&cl_val=" + cl_val + "&tr_val=" + tr_val;
        var obj = document.getElementById(objID);
        dotheajax(progpage, obj, "POST", "null", "innerHTML");
    }else{
        document.getElementById("reg_msg").innerHTML = "<span class='text_red'><b>Please choose a program.</b></span>";
    }
}

function CountryType()
{
    var my_country = document.getElementById('my_country');
    var tr_no_country = document.getElementById('tr_no_country_id');
    var tr_canada = document.getElementById('tr_canada_id');
    var tr_usa = document.getElementById('tr_usa_id');

    if(my_country.value == '')
    {
       tr_no_country.style.display = '';
       tr_canada.style.display = 'none';
       tr_usa.style.display = 'none';
    }
    
    if(my_country.value == 'Canada')
    {
       tr_no_country.style.display = 'none';
       tr_canada.style.display = '';
       tr_usa.style.display = 'none';
    }
    
    if(my_country.value == 'United States')
    {
       tr_no_country.style.display = 'none';
       tr_canada.style.display = 'none';
       tr_usa.style.display = '';
    }

}

function compare_select_text(a, b) {
    var textA = a.text.toLowerCase( );
    var textB = b.text.toLowerCase( );
    if (textA < textB) {return -1}
    if (textA > textB) {return 1}
    return 0;
}

function move_option(src_id, target_id, validate)
{
    var tmp_src_opts = new Array();
    var target_add = new Array();
    var target_orig = new Array();
    var x = 0;
    var q = 0;
    var j = 0;
    
    var optsrc = document.getElementById(src_id);
    var opttarg = document.getElementById(target_id);
    
    for (var i = 0; i < optsrc.length; i++) {
        if (optsrc.options[i].selected) {
            var tmp_a_values = new Object();
            tmp_a_values.text = optsrc.options[i].text;
            tmp_a_values.value = optsrc.options[i].value;
            target_add[q] = tmp_a_values;
            q++;
        } else {
            //storing options that stay to recreate select element
            var tmp_values = new Object();
            tmp_values.text = optsrc.options[i].text;
            tmp_values.value = optsrc.options[i].value;
            tmp_src_opts[x] = tmp_values;
            x++;
        }
        
    }
    
    tmp_src_opts.sort(compare_select_text);
    //resetting length of source
    optsrc.length = tmp_src_opts.length;
    //looping through temp array to recreate source select element
    for (var i = 0; i < tmp_src_opts.length; i++) {
        optsrc.options[i].text = tmp_src_opts[i].text;
        optsrc.options[i].value = tmp_src_opts[i].value;
        optsrc.options[i].selected = false;
    }
    
    for (var i = 0; i < opttarg.length; i++) {
        var tmp_o_values = new Object();
        tmp_o_values.text = opttarg.options[i].text;
        tmp_o_values.value = opttarg.options[i].value;
        target_orig[j] = tmp_o_values;
        j++;
    }  
    
    var target_values = target_orig.concat(target_add);
    target_values.sort(compare_select_text);
    opttarg.length = target_values.length;
    for (var k = 0; k < target_values.length; k++) {
        //alert(target_values[k].text + " " + target_values[k].value);
        opttarg.options[k].text = target_values[k].text;
        opttarg.options[k].value = target_values[k].value;
        opttarg.options[k].selected = false;
    }
    
    if(validate == "target"){
        validate_add_remove(target_id);  
    }else if(validate == "source"){
        validate_add_remove(src_id);
    }
}


function trim(inputString) {

   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") {
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") {
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) {
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
   }
   return retValue;
}