

//laenude  kalkulaatorit ei ole vaja muuta! muuta ainult kaenduse kalk, ehk calc1_toode1 selected
//-------------------------------------------------------------------------------------------------




jQuery(document).ready(function(){

	getBankOpts();//init get bank options

	calSetup('calc1_laenu_valjast_kuup','notime1','trigger1');	

	window.setInterval("upRiigiabiMin()", 1000); 

	jQuery('#calc1_laenu_summa').change(function(){

		jQuery(this).val(formatNr(jQuery('#calc1_laenu_summa').val().replaceAll(' ',''), 2, '.', ' '));

	}).blur(function(){

		jQuery(this).val(formatNr(jQuery('#calc1_laenu_summa').val().replaceAll(' ',''), 2, '.', ' '));

	});

	jQuery('#calc1_lepingutasu').change(function(){

		jQuery(this).val(formatNr(jQuery('#calc1_lepingutasu').val().replaceAll(' ',''), 2, '.', ' '));

	}).blur(function(){

		jQuery(this).val(formatNr(jQuery('#calc1_lepingutasu').val().replaceAll(' ',''), 2, '.', ' '));

	});

	jQuery('[class="calc_help"]').mouseover(function(){

		AWIDiv(jQuery(this),jQuery(this).attr('rel'));												   

	}).mouseout(function(){

		jQuery('#awieditor').remove();											   

	});

});

//-------------------------

function getBankOpts() {

	var product = (jQuery('#calc1_toode1').attr('checked') == true ? 1 : 0);

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/awi_calc1/bank.php',

	   data: "action=get_bank_opts&product="+product,

	   dataType:"html",

	   processData:false,

	   success: function(data){

			jQuery('#calc1_pank').html(data);

	   }

	 });

}

//-------------------------

function fields() {

	switch (jQuery('#calc1_toode1').attr('checked')) {

		case false:

		default:

			//hide

			jQuery('#tr_calc1_kaendustasu').hide();

			jQuery('#tr_calc1_kaenduse_ulatus').hide();

			jQuery('#tr_calc1_panga_intressimaar').hide();

			//show

			//jQuery('#tr_calc1_pank').show();

			//jQuery('#tr_calc1_vaikeettevote').show();

			//jQuery('#tr_calc1_panga_reiting').show();

			//jQuery('#tr_calc1_panga_min_intress').show();

			jQuery('#tr_calc1_laenu_intress').show();

			if (jQuery('#calc1_kredexi_riskikategooria option[value="F-"]').length <= 0) jQuery('#calc1_kredexi_riskikategooria').append(new Option('F-','F-'));			
			
			jQuery('#tr_calc1_tagatis').show();
			//jQuery('#tr_calc1_laenu_valuuta').show();
			
			
			break;

		case true://riigiabi kaendusele selected

			//hide

			//jQuery('#tr_calc1_pank').hide();

			//jQuery('#tr_calc1_vaikeettevote').hide();

			//jQuery('#tr_calc1_panga_reiting').hide();

			//jQuery('#tr_calc1_panga_min_intress').hide();

			jQuery('#tr_calc1_laenu_intress').hide();
			
			//show

			jQuery('#tr_calc1_kaendustasu').show();

			jQuery('#tr_calc1_kaenduse_ulatus').show();

			jQuery('#tr_calc1_panga_intressimaar').show();

			if (jQuery('#calc1_kredexi_riskikategooria').children('[value="F-"]')) jQuery('#calc1_kredexi_riskikategooria').children('[value="F-"]').remove();
			
			jQuery('#tr_calc1_tagatis').hide();
			//jQuery('#tr_calc1_laenu_valuuta').hide();
			
			break;

	}

	getBankOpts();//upd bank options

}

//-------------------------

var tzt = 0;

function upRiigiabiMin() {

	
	//abi laenule, ei muutunud 2011 juulis
	if (jQuery('#calc1_toode1').attr('checked') != true && (trim(jQuery('#calc1_kredexi_riskikategooria').val()) == '' || trim(jQuery('#calc1_tagatis').val()) == '')) return;
	//abi kaendusele, muutus 2011 juulis
	if (jQuery('#calc1_toode1').attr('checked') == true && trim(jQuery('#calc1_kredexi_riskikategooria').val()) == '') return;
	
	jQuery('[class="calc1_error"]').remove();

	var whole_interest = [];

	whole_interest['B'] = [];
	whole_interest['B']['big'] = 60;//40;
	whole_interest['B']['medium'] = 75;//40;
	whole_interest['B']['small'] = 100;//40;
	whole_interest['B']['smallkaendus'] = 40;
	
	whole_interest['C'] = [];
	whole_interest['C']['big'] = 60;//40;
	whole_interest['C']['medium'] = 75;//55;
	whole_interest['C']['small'] = 100;//55;
	whole_interest['C']['smallkaendus'] = 55;

	whole_interest['D'] = [];
	whole_interest['D']['big'] = 75;//55;
	whole_interest['D']['medium'] = 100;//80;
	whole_interest['D']['small'] = 220;//80;
	whole_interest['D']['smallkaendus'] = 80;

	whole_interest['E'] = [];
	whole_interest['E']['big'] = 100;//80;
	whole_interest['E']['medium'] = 220;//200;
	whole_interest['E']['small'] = 400;//200;
	whole_interest['E']['smallkaendus'] = 200;

	whole_interest['F'] = [];
	whole_interest['F']['big'] = 220;//200;
	whole_interest['F']['medium'] = 400;//380;
	whole_interest['F']['smallkaendus'] = 380;

	//18.02.2011

	whole_interest['F']['small'] = 650;
	whole_interest['F-'] = [];	
	whole_interest['F-']['big'] = 400;
	whole_interest['F-']['medium'] = 650;

	//18.02.2011
	if (jQuery('#calc1_toode1').attr('checked') == true) {
		whole_interest['F-']['small'] = 650;
	} else {
		whole_interest['F-']['small'] = 1000;
	}

	if (jQuery('#calc1_toode1').attr('checked') != true && whole_interest[jQuery('#calc1_kredexi_riskikategooria').val()][jQuery('#calc1_tagatis').val()] > 0) {
		if (/*jQuery('#calc1_laenu_valuuta').val() != 'EEK' &&*/ jQuery('#calc1_laenu_valuuta').val() != 'EUR') return;
		//ok
	} else if (jQuery('#calc1_toode1').attr('checked') == true && whole_interest[jQuery('#calc1_kredexi_riskikategooria').val()]['smallkaendus'] > 0) {
		if (/*jQuery('#calc1_laenu_valuuta').val() != 'EEK' &&*/ jQuery('#calc1_laenu_valuuta').val() != 'EUR') {
			return;
		}
		//
	} else {

		return;		

	}

	if (jQuery('#calc1_toode1').attr('checked') == true) {//kaendus checked
		
		//var r = whole_interest[jQuery('#calc1_kredexi_riskikategooria').val()][jQuery('#calc1_tagatis').val()] / 100;
		var r = whole_interest[jQuery('#calc1_kredexi_riskikategooria').val()]['smallkaendus'] / 100;
		jQuery('#calc1_riigiabi_min_maar').val(r);
		
	} else {

		jQuery.ajax({

		   type: "POST",

		   url: '/extensions/awi_calc1/bank.php',

		   data: "action=get_discount_rate&calc1_laenu_valuuta="+jQuery('#calc1_laenu_valuuta').val(),

		   dataType:"html",

		   processData:false,

		   success: function(data){

				var r = parseFloat(trim(data)) + whole_interest[jQuery('#calc1_kredexi_riskikategooria').val()][jQuery('#calc1_tagatis').val()] / 100;

				jQuery('#calc1_riigiabi_min_maar').val(r);

		   }

		 });

	}

	switch (jQuery('#calc1_toode1').attr('checked')) {

		case false:

		default:	

			//vpo--------------------------

			if (parseInt(jQuery('#calc1_arvestuslik_laenuperiood').val()) < 0) {

				jQuery('#calc1_arvestuslik_laenuperiood').after(' <font color="red" class="calc1_error">kohustuslik</font> ');

				return;

			}

			//alert("action=get_vpo&calc1_laenu_summa="+jQuery('#calc1_laenu_summa').val()+"&calc1_arvestuslik_laenuperiood="+jQuery('#calc1_arvestuslik_laenuperiood').val()+"&calc1_maksepuhkus="+jQuery('#calc1_maksepuhkus').val()+"&calc1_laenu_tegelik_pikkus="+jQuery('#calc1_laenu_tegelik_pikkus').val()+"&calc1_laenu_valjast_kuup="+jQuery('#calc1_laenu_valjast_kuup').val()+"&calc1_laenu_intress="+jQuery('#calc1_laenu_intress').val()+"&calc1_riigiabi_min_maar="+jQuery('#calc1_riigiabi_min_maar').val()+"&calc1_laenu_valuuta="+jQuery('#calc1_laenu_valuuta').val()+'&calc1_lepingutasu='+jQuery('#calc1_lepingutasu').val());

			jQuery.ajax({

			   type: "POST",

			   url: '/extensions/awi_calc1/bank.php',

			   data: "action=get_vpo&calc1_laenu_summa="+jQuery('#calc1_laenu_summa').val()+"&calc1_arvestuslik_laenuperiood="+jQuery('#calc1_arvestuslik_laenuperiood').val()+"&calc1_maksepuhkus="+jQuery('#calc1_maksepuhkus').val()+"&calc1_laenu_tegelik_pikkus="+jQuery('#calc1_laenu_tegelik_pikkus').val()+"&calc1_laenu_valjast_kuup="+jQuery('#calc1_laenu_valjast_kuup').val()+"&calc1_laenu_intress="+jQuery('#calc1_laenu_intress').val()+"&calc1_riigiabi_min_maar="+jQuery('#calc1_riigiabi_min_maar').val()+"&calc1_laenu_valuuta="+jQuery('#calc1_laenu_valuuta').val()+'&calc1_lepingutasu='+jQuery('#calc1_lepingutasu').val(),

			   dataType:"html",

			   processData:false,

			   success: function(data){

					jQuery('[class="calc1_error"]').remove();

					jQuery('#calc1_riigiabi_suurus_vpo').val(data);

			   }

			 });

			//annuiteet--------------------------

			jQuery.ajax({

			   type: "POST",

			   url: '/extensions/awi_calc1/bank.php',

			   data: "action=get_annuity&calc1_laenu_summa="+jQuery('#calc1_laenu_summa').val()+"&calc1_arvestuslik_laenuperiood="+jQuery('#calc1_arvestuslik_laenuperiood').val()+"&calc1_maksepuhkus="+jQuery('#calc1_maksepuhkus').val()+"&calc1_laenu_tegelik_pikkus="+jQuery('#calc1_laenu_tegelik_pikkus').val()+"&calc1_laenu_valjast_kuup="+jQuery('#calc1_laenu_valjast_kuup').val()+"&calc1_laenu_intress="+jQuery('#calc1_laenu_intress').val()+"&calc1_riigiabi_min_maar="+jQuery('#calc1_riigiabi_min_maar').val()+"&calc1_laenu_valuuta="+jQuery('#calc1_laenu_valuuta').val()+'&calc1_lepingutasu='+jQuery('#calc1_lepingutasu').val(),

			   dataType:"html",

			   processData:false,

			   success: function(data){

					jQuery('[class="calc1_error"]').remove();

					jQuery('#calc1_riigiabi_suurus_annuiteet').val(data);

			   }

			 });

			break;

		case true:

		//alert("action=get_vpo2&noutud_gar_tasu_protsent="+whole_interest[jQuery('#calc1_kredexi_riskikategooria').val()][jQuery('#calc1_tagatis').val()]+"&calc1_kaendustasu="+jQuery('#calc1_kaendustasu').val()+"&calc1_kaenduse_ulatus="+jQuery('#calc1_kaenduse_ulatus').val()+"&calc1_panga_intressimaar="+jQuery('#calc1_panga_intressimaar').val()+"&calc1_laenu_summa="+jQuery('#calc1_laenu_summa').val()+"&calc1_arvestuslik_laenuperiood="+jQuery('#calc1_arvestuslik_laenuperiood').val()+"&calc1_maksepuhkus="+jQuery('#calc1_maksepuhkus').val()+"&calc1_laenu_tegelik_pikkus="+jQuery('#calc1_laenu_tegelik_pikkus').val()+"&calc1_laenu_valjast_kuup="+jQuery('#calc1_laenu_valjast_kuup').val()+"&calc1_laenu_intress="+jQuery('#calc1_laenu_intress').val()+"&calc1_riigiabi_min_maar="+jQuery('#calc1_riigiabi_min_maar').val()+"&calc1_laenu_valuuta="+jQuery('#calc1_laenu_valuuta').val()+'&calc1_lepingutasu='+jQuery('#calc1_lepingutasu').val());

			//vpo--------------------------

			//alert("action=get_vpo2&noutud_gar_tasu_protsent="+whole_interest[jQuery('#calc1_kredexi_riskikategooria').val()][jQuery('#calc1_tagatis').val()]+"&calc1_kaendustasu="+jQuery('#calc1_kaendustasu').val()+"&calc1_kaenduse_ulatus="+jQuery('#calc1_kaenduse_ulatus').val()+"&calc1_panga_intressimaar="+jQuery('#calc1_panga_intressimaar').val()+"&calc1_laenu_summa="+jQuery('#calc1_laenu_summa').val()+"&calc1_arvestuslik_laenuperiood="+jQuery('#calc1_arvestuslik_laenuperiood').val()+"&calc1_maksepuhkus="+jQuery('#calc1_maksepuhkus').val()+"&calc1_laenu_tegelik_pikkus="+jQuery('#calc1_laenu_tegelik_pikkus').val()+"&calc1_laenu_valjast_kuup="+jQuery('#calc1_laenu_valjast_kuup').val()+"&calc1_laenu_intress="+jQuery('#calc1_laenu_intress').val()+"&calc1_riigiabi_min_maar="+jQuery('#calc1_riigiabi_min_maar').val()+"&calc1_laenu_valuuta="+jQuery('#calc1_laenu_valuuta').val()+'&calc1_lepingutasu='+jQuery('#calc1_lepingutasu').val());

			jQuery.ajax({

			   type: "POST",

			   url: '/extensions/awi_calc1/bank.php',

			   data: "action=get_vpo2&noutud_gar_tasu_protsent="+whole_interest[jQuery('#calc1_kredexi_riskikategooria').val()]['smallkaendus']+"&calc1_kaendustasu="+jQuery('#calc1_kaendustasu').val()+"&calc1_kaenduse_ulatus="+jQuery('#calc1_kaenduse_ulatus').val()+"&calc1_panga_intressimaar="+jQuery('#calc1_panga_intressimaar').val()+"&calc1_laenu_summa="+jQuery('#calc1_laenu_summa').val()+"&calc1_arvestuslik_laenuperiood="+jQuery('#calc1_arvestuslik_laenuperiood').val()+"&calc1_maksepuhkus="+jQuery('#calc1_maksepuhkus').val()+"&calc1_laenu_tegelik_pikkus="+jQuery('#calc1_laenu_tegelik_pikkus').val()+"&calc1_laenu_valjast_kuup="+jQuery('#calc1_laenu_valjast_kuup').val()+"&calc1_laenu_intress="+jQuery('#calc1_laenu_intress').val()+"&calc1_riigiabi_min_maar="+jQuery('#calc1_riigiabi_min_maar').val()+"&calc1_laenu_valuuta="+jQuery('#calc1_laenu_valuuta').val()+'&calc1_lepingutasu='+jQuery('#calc1_lepingutasu').val(),

			   dataType:"html",

			   processData:false,

			   success: function(data){

					jQuery('[class="calc1_error"]').remove();

					jQuery('#calc1_riigiabi_suurus_vpo').val(data);

			   }

			 });

			//annuiteet--------------------------

			if (tzt == 0) {

				//alert("action=get_annuity2&noutud_gar_tasu_protsent="+whole_interest[jQuery('#calc1_kredexi_riskikategooria').val()][jQuery('#calc1_tagatis').val()]+"&calc1_kaendustasu="+jQuery('#calc1_kaendustasu').val()+"&calc1_kaenduse_ulatus="+jQuery('#calc1_kaenduse_ulatus').val()+"&calc1_panga_intressimaar="+jQuery('#calc1_panga_intressimaar').val()+"&calc1_laenu_summa="+jQuery('#calc1_laenu_summa').val()+"&calc1_arvestuslik_laenuperiood="+jQuery('#calc1_arvestuslik_laenuperiood').val()+"&calc1_maksepuhkus="+jQuery('#calc1_maksepuhkus').val()+"&calc1_laenu_tegelik_pikkus="+jQuery('#calc1_laenu_tegelik_pikkus').val()+"&calc1_laenu_valjast_kuup="+jQuery('#calc1_laenu_valjast_kuup').val()+"&calc1_laenu_intress="+jQuery('#calc1_laenu_intress').val()+"&calc1_riigiabi_min_maar="+jQuery('#calc1_riigiabi_min_maar').val()+"&calc1_laenu_valuuta="+jQuery('#calc1_laenu_valuuta').val()+'&calc1_lepingutasu='+jQuery('#calc1_lepingutasu').val());

			}

			tzt = 1;

			jQuery.ajax({

			   type: "POST",

			   url: '/extensions/awi_calc1/bank.php',

			   data: "action=get_annuity2&noutud_gar_tasu_protsent="+whole_interest[jQuery('#calc1_kredexi_riskikategooria').val()]['smallkaendus']+"&calc1_kaendustasu="+jQuery('#calc1_kaendustasu').val()+"&calc1_kaenduse_ulatus="+jQuery('#calc1_kaenduse_ulatus').val()+"&calc1_panga_intressimaar="+jQuery('#calc1_panga_intressimaar').val()+"&calc1_laenu_summa="+jQuery('#calc1_laenu_summa').val()+"&calc1_arvestuslik_laenuperiood="+jQuery('#calc1_arvestuslik_laenuperiood').val()+"&calc1_maksepuhkus="+jQuery('#calc1_maksepuhkus').val()+"&calc1_laenu_tegelik_pikkus="+jQuery('#calc1_laenu_tegelik_pikkus').val()+"&calc1_laenu_valjast_kuup="+jQuery('#calc1_laenu_valjast_kuup').val()+"&calc1_laenu_intress="+jQuery('#calc1_laenu_intress').val()+"&calc1_riigiabi_min_maar="+jQuery('#calc1_riigiabi_min_maar').val()+"&calc1_laenu_valuuta="+jQuery('#calc1_laenu_valuuta').val()+'&calc1_lepingutasu='+jQuery('#calc1_lepingutasu').val(),

			   dataType:"html",

			   processData:false,

			   success: function(data){

					jQuery('[class="calc1_error"]').remove();

					jQuery('#calc1_riigiabi_suurus_annuiteet').val(data);

			   }

			 });

			break;

	}

	

}

//-------------------------

String.prototype.replaceAll=function(s1, s2) {

        return this.replace(new RegExp(s1,"g"), s2);

}

//-------------------------

function fCur(s) {

	var s_ = '';

	s = s.replace(',', '.');

	var ss = s.split('.');

	var sss = ss.split('');

	for (i in sss) {

		if (typeof(i / 3) == 'integer') {

			s_ += ' ';	

		} else {

				

		}

	}

}

//-------------------------

function getBankData() {

	jQuery('[class="calc1_error"]').remove();

	if (jQuery('#calc1_pank').val() == '') jQuery('#calc1_pank').after(' <font color="red" class="calc1_error">kohustuslik</font> ');

	if (jQuery('#calc1_panga_reiting').val() == '') jQuery('#calc1_panga_reiting').after(' <font color="red" class="calc1_error">kohustuslik</font> ');

	var plus = '+';

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/awi_calc1/bank.php',

	   data: "action=get_interest&calc1_pank="+jQuery('#calc1_pank').val()+"&calc1_vaikeettevote="+jQuery('#calc1_vaikeettevote').val()+"&calc1_panga_reiting="+jQuery('#calc1_panga_reiting').val().replaceAll('[+]','_plus_'),

	   dataType:"html",

	   processData:false,

	   success: function(data){

			var arr = data.split('|');

			jQuery('#calc1_panga_min_intress').val(arr[0]);

			jQuery('#calc1_kredexi_vastav_reiting').val(arr[1]);

			jQuery('#calc1_kredexi_riskikategooria').val(arr[2]);

	   }

	 });

}

//---------------------------

function clearFlds() {

	jQuery('#calc1_vaikeettevote').val('');

	jQuery('#calc1_panga_reiting').val('');

	jQuery('#calc1_kredexi_vastav_reiting').val('');

	jQuery('#calc1_kredexi_riskikategooria').val('');

}

//---------------------------

function toggleSmallBusinessOpts(sw_poletahtis, sw_ei, sw_jah) {

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/awi_calc1/bank.php',

	   data: "action=toggle_small_business_opts&calc1_pank="+jQuery('#calc1_pank').val(),

	   dataType:"html",

	   processData:false,

	   success: function(data){

			if (trim(data) == '1') {

				jQuery('#calc1_vaikeettevote_poletahtis').hide();

				jQuery('#calc1_vaikeettevote_jah').show();

				jQuery('#calc1_vaikeettevote_ei').show();

				//var opts = '<option value="jah" id="calc1_vaikeettevote_jah">'+sw_jah+'</option><option value="ei" id="calc1_vaikeettevote_ei">'+sw_ei+'</option>';

			} else {

				jQuery('#calc1_vaikeettevote_poletahtis').show();

				jQuery('#calc1_vaikeettevote_jah').hide();

				jQuery('#calc1_vaikeettevote_ei').hide();

				//var opts = '<option value="" id="calc1_vaikeettevote_poletahtis">'+sw_poletahtis+'</option>';

			}

			//jQuery('#calc1_vaikeettevote').html(opts);

	   }

	 });

}

//---------------------------

function formatNr(a, b, c, d) {

	if (parseFloat(a) > 0){}else{return '';}

 a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);

 e = a + '';

 f = e.split('.');

 if (!f[0]) {

  f[0] = '0';

 }

 if (!f[1]) {

  f[1] = '';

 }

 if (f[1].length < b) {

  g = f[1];

  for (i=f[1].length + 1; i <= b; i++) {

   g += '0';

  }

  f[1] = g;

 }

 if(d != '' && f[0].length > 3) {

  h = f[0];

  f[0] = '';

  for(j = 3; j < h.length; j+=3) {

   i = h.slice(h.length - j, h.length - j + 3);

   f[0] = d + i +  f[0] + '';

  }

  j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));

  f[0] = j + f[0];

 }

 c = (b <= 0) ? '' : c;

 return f[0] + c + f[1];

}

//---------------------------

function upBankRatingOpts() {

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/awi_calc1/bank.php',

	   data: "action=update_bank_rating&calc1_pank="+jQuery('#calc1_pank').val()+"&calc1_vaikeettevote="+jQuery('#calc1_vaikeettevote').val(),

	   dataType:"html",

	   processData:false,

	   success: function(data){

			jQuery('#calc1_panga_reiting').html(data);

	   }

	 });

}

//---------------------------

function calSetup(dateobid,timeobid,selector) {

	

	var d = new Date();

	Calendar.setup({

		inputField: dateobid,

		dateFormat: "%d.%m.%Y",

		trigger: selector,

		/*

		disabled: function(date) {

			if (parseInt(date.format("yyyymmdd")) < parseInt(d.format("yyyymmdd"))) {

				return true;

			} else {

				return false;

			}

		},

		*/

		showTime: true,

		minuteStep: 15,

		onTimeChange  : function(cal) {

			var h = cal.getHours(), m = cal.getMinutes();

			// zero-pad them

			if (h < 10) h = "0" + h;

			if (m < 10) m = "0" + m;

			jQuery("#"+timeobid).val(

				Calendar.formatString("${hh}:${mm}", {hh:h,mm:m})

			);

		},

		onSelect: function() { 

			var date = Calendar.intToDate(this.selection.get()); 

			date = Calendar.printDate(date, "%d.%m.%Y"); 

			jQuery('#'+dateobid).val(date); 

			this.hide(); 

		},

		time: (jQuery('#'+timeobid).val().length == 5 ? parseInt(jQuery('#'+timeobid).val().replace(':','')) : 1100)

	});

}

//------------------------------































//------------------------

function ABCheckEmail(str) {

	if(!str.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi)) {

		return false;

	}

	return true;

}

//--------------

function ABCheckLength(str,len) {

	if(str.length < len) {

		return false;

	}

	return true;

}

//--------------

function ABCheckPassword(str) {

	if (str.length < 6) {return false;}//too short

	var a = 'abcdefghijklmnopqrstuvxyz';

	var b = 'ABCDEFGHIJKLMNOPQRSTUVXYZ';

	var c = '1234567890';

	var aa = null;

	var bb = null;

	var cc = null;

	for (i in str) {

		if (aa == null) {aa = a.match(str[i]);}

		if (bb == null) {bb = b.match(str[i]);}

		if (cc == null) {cc = c.match(str[i]);}

	}

	if (aa != null && bb != null && cc != null) {

		return true;

	}

	return false;

}

//--------------

function ABValidateForm(form) {

	alert(form.attr('id'));

	var valid = [];

	var ok = '';

	var elems = form.find("[title='required']");

	for (i in elems) {

		ok = false;

		//alert($(elems[i]).attr('id'));

		if ($(elems[i]).attr('alt')=='email') {

			ok = ABCheckEmail($(elems[i]).val());

		}	

		if (typeof($(elems[i]).attr('alt'))=='number') {

			ok = ABCheckLength($(elems[i]).val(),$(elems[i]).attr('alt'));

		}

		if (typeof($(elems[i]).attr('alt'))=='password') {

			ok = ABCheckPassword($(elems[i]).val());

		}

		if (ok==false) {

			$(elems[i]).addClass('error');

			valid[i] = 0;

		} else {

			$(elems[i]).removeClass('error');

			valid[i] = 1;

		}

	}	

	for (j in valid) {

		if (valid[j] == 0) {

			return false;

		}	

	}

	return true;

}

//------------------------

jQuery('select[id*="_child_school_id_"]').change(function() {

	var sid = jQuery(this).val();	

	var spl = jQuery(this).attr('id').split('_child_school_id');

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/hansaworld/get_options_class.php',

	   data: "school_id="+sid,

	   dataType:"html",

	   processData:false,

	   success: function(data){

			jQuery('#'+spl[0]+'_child_class_id').html(data);

	   }

	 });

});

//--------------------------------

function upClass(the) {

	var sid = the.val();

	if (the.attr('id') == 'child_school_id') var a = true;

	var spl = the.attr('id').split('_child_school_id_');

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/hansaworld/get_options_class.php',

	   data: "school_id="+sid,

	   dataType:"html",

	   processData:false,

	   success: function(data){

		   	if (a == true) {

				jQuery('#child_class_id').html(data);

			} else {

				jQuery('#'+spl[0]+'_child_class_id_'+spl[1]).html(data);

			}

	   }

	 });	

}

//--------------------------------

jQuery(document).ready(function(){

	jQuery(document).keydown(function(event){

		var block = (jQuery('#awieditor').css('display') == 'block' ? true : false);

		if (block == true && event.keyCode == 13) {//enter, submit

			event.preventDefault();

			jQuery('#ajaxsubmit').click();

		}

		if (block && event.keyCode == 27) {//escape, close

			event.preventDefault();

			jQuery('#awieditor').hide();

		}

	});

	jQuery('input[id^="contract_end_date_"]').each(function(i){

		var tmp = jQuery(this).attr('id').split('_');					  

		calSetup('contract_end_date_'+tmp[3],'contract_end_time_'+tmp[3],'awicalsel_contract_'+tmp[3]);

	});

	//onchange does not fire if date selected from cal

	/*jQuery('img[id^="awicalsel_contract_"]').click(function(){

		var tmp = jQuery(this).attr('id').split('_');

		objFire = jQuery('#contract_end_date_'+tmp[2]);

		//cntrEndDate(tmp[2]);

	});*/

});

//--------------------------------

function trim(stringToTrim) {

	return stringToTrim.replace(/^\s+|\s+$/g,"");

}

//--------------------------------

function markPart(cid,tid) {

	jQuery('#mark_'+cid+'_'+tid).parent("td").css('background-color','#FFFFFF');

	var part = (jQuery('#mark_'+cid+'_'+tid).attr('checked') == true ? 1 : 0);

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/hansaworld/mark_part.php',

	   data: "cid="+cid+'&tid='+tid+'&part='+part,

	   dataType:"html",

	   processData:false,

	   success: function(data){

			if (trim(data) == '1') {

			   jQuery('#mark_'+cid+'_'+tid).parent("td").animate({backgroundColor:'#FFFFFF'}, 'fast').animate({backgroundColor:'#DBEFAB'}, 'slow');

			} else {

			   jQuery('#mark_'+cid+'_'+tid).parent("td").animate({backgroundColor:'#FFFFFF'}, 'fast').animate({backgroundColor:'#FFC1C1'}, 'slow');

			}			

	   },

		error:function (XMLHttpRequest, textStatus, errorThrown) {

			alert(errorThrown);

		}

	 });	

}

//------------------------------

function eUs(e,v,s,t) {

	if (t == 'user') {	

		var g = new Array();

		switch(v[1]) {

			case '1':

				g[1] = ' selected="selected" ';

				g[2] = '';

				g[3] = '';

				break;

			case '2':

				g[1] = '';

				g[2] = ' selected="selected" ';

				g[3] = '';

				break;

			case '3':

				g[1] = '';

				g[2] = '';

				g[3] = ' selected="selected" ';

				break;

		}

		var f = '<table cellpadding="0" cellspacing="0" border="0">';

		f += '<tr><td>'+s[1]+'</td><td><select id="user_group_id"><option value="3" '+g[3]+'>'+s[13]+'</option><option value="2" '+g[2]+'>'+s[14]+'</option><option value="1" '+g[1]+'>'+s[15]+'</option></select></td></tr>';

		f += '<tr><td>'+s[2]+'</td><td><input type="text" id="user_un" value="'+v[2]+'" /></td></tr>';

		//f += '<tr><td>'+s[3]+'</td><td><input type="text" id="user_pw" value="" /></td></tr>';

		f += '<tr><td>'+s[4]+'</td><td><input type="text" id="user_firstname" value="'+v[4]+'" /></td></tr>';

		f += '<tr><td>'+s[5]+'</td><td><input type="text" id="user_lastname" value="'+v[5]+'" /></td></tr>';

		f += '<tr><td>'+s[6]+'</td><td><input type="text" id="user_email" value="'+v[6]+'" /></td></tr>';

		f += '<tr><td>'+s[7]+'</td><td><input type="text" id="user_email2" value="'+v[7]+'" /></td></tr>';

		f += '<tr><td>'+s[8]+'</td><td><input type="text" id="user_phone" value="'+v[8]+'" /></td></tr>';

		f += '<tr><td>'+s[9]+'</td><td><input type="text" id="user_address" value="'+v[9]+'" /></td></tr>';

		f += '<tr><td>'+s[10]+'</td><td><input type="text" id="user_personal_id" value="'+v[10]+'" /></td></tr>';

		if (parseInt(v[0]) > 0) {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\''+v[0]+'\',\'0\',\''+t+'\');return false;">'+s[11]+'</a>&nbsp;<a href="#" onclick="javascript:if(confirm(\''+s[12]+'?\')){eUs_(\''+v[0]+'\',\'1\',\''+t+'\');}return false;">'+s[12]+'</a></td></tr>';

		} else {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\'0\',\'0\',\''+t+'\');return false;">'+s[11]+'</a></td></tr>';

		}

		f += '</table>';

	}

	if (t == 'child') {

		var sopt1 = '';

		var ssel1 = '';

		var sopt2 = '';

		var ssel2 = '';

		for (si in v[7]) {

			ssel1 = (v[7][si] == v[2] ? ' selected="selected" ' : '');

			sopt1 += '<option value="'+v[7][si]+'"'+ssel1+'>'+v[8][si]+'</option>';

		}

		for (si in v[9]) {

			ssel2 = (v[9][si] == v[3] ? ' selected="selected" ' : '');

			sopt2 += '<option value="'+v[9][si]+'"'+ssel2+'>'+v[10][si]+'</option>';

		}

		var f = '<table cellpadding="0" cellspacing="0" border="0">';

		f += '<tr><td>'+s[2]+'</td><td><select id="child_school_id" onchange="upClass(jQuery(this));">'+sopt1+'</select></td></tr>';

		f += '<tr><td>'+s[3]+'</td><td><select id="child_class_id">'+sopt2+'</select></td></tr>';

		f += '<tr><td>'+s[4]+'</td><td><input type="hidden" id="child_parent_id" value="'+v[1]+'" /><input type="text" id="child_firstname" value="'+v[4]+'" /></td></tr>';

		f += '<tr><td>'+s[5]+'</td><td><input type="text" id="child_lastname" value="'+v[5]+'" /></td></tr>';

		f += '<tr><td>'+s[6]+'</td><td><input type="text" id="child_personal_id" value="'+v[6]+'" /></td></tr>';

		if (parseInt(v[0]) > 0) {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\''+v[0]+'\',\'0\',\''+t+'\');return false;">'+s[7]+'</a>&nbsp;<a href="#" onclick="javascript:if(confirm(\''+s[8]+'?\')){eUs_(\''+v[0]+'\',\'1\',\''+t+'\');}return false;">'+s[8]+'</a></td></tr>';

		} else {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\'0\',\'0\',\''+t+'\');return false;">'+s[7]+'</a></td></tr>';

		}

		f += '</table>';

	}

	if (t == 'school') {

		var f = '<table cellpadding="0" cellspacing="0" border="0">';

		f += '<tr><td>'+s[1]+'</td><td><input type="text" id="school_name" value="'+v[1]+'" /></td></tr>';

		f += '<tr><td>'+s[2]+'</td><td><input type="text" id="school_address" value="'+v[2]+'" /></td></tr>';

		if (parseInt(v[0]) > 0) {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\''+v[0]+'\',\'0\',\''+t+'\');return false;">'+s[3]+'</a>&nbsp;<a href="#" onclick="javascript:if(confirm(\''+s[4]+'?\')){eUs_(\''+v[0]+'\',\'1\',\''+t+'\');}return false;">'+s[4]+'</a></td></tr>';

		} else {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\'0\',\'0\',\''+t+'\');return false;">'+s[3]+'</a></td></tr>';

		}

		f += '</table>';

	}

	if (t == 'class') {

		var sopt = '';

		var ssel = '';

		for (si in v[3]) {

			ssel = (v[3][si] == v[1] ? ' selected="selected" ' : '');

			sopt += '<option value="'+v[3][si]+'"'+ssel+'>'+v[4][si]+'</option>';

		}

		var f = '<table cellpadding="0" cellspacing="0" border="0">';

		f += '<tr><td>'+s[1]+'</td><td><select id="class_school_id">'+sopt+'</select></td></tr>';

		f += '<tr><td>'+s[2]+'</td><td><input type="text" id="class_name" value="'+v[2]+'" /></td></tr>';

		if (parseInt(v[0]) > 0) {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\''+v[0]+'\',\'0\',\''+t+'\');return false;">'+s[3]+'</a>&nbsp;<a href="#" onclick="javascript:if(confirm(\''+s[4]+'?\')){eUs_(\''+v[0]+'\',\'1\',\''+t+'\');}return false;">'+s[4]+'</a></td></tr>';

		} else {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\'0\',\'0\',\''+t+'\');return false;">'+s[3]+'</a></td></tr>';

		}

		f += '</table>';

	}

	if (t == 'invoice') {

		var f = '<table cellpadding="0" cellspacing="0" border="0">';

		if (parseInt(v[0]) > 0) {

			var cinfo = v[2]+', '+v[3];//+', '+v[4];

		} else {

			var cinfo = '';

		}

		f += '<tr><td>'+s[2]+'</td><td><input type="hidden" id="invoice_contract_id" value="'+v[1]+'" /><input type="text" id="invoice_contract_info" value="'+cinfo+'" /></td></tr>';

		f += '<tr><td>'+s[16]+'</td><td><input type="text" id="invoice_reference_nr" value="'+v[14]+'" /></td></tr>';

		f += '<tr><td>'+s[5]+'</td><td><input type="text" id="invoice_price_month" value="'+v[5]+'" /></td></tr>';

		f += '<tr><td>'+s[6]+'</td><td><input type="text" id="invoice_price_training" value="'+v[6]+'" /></td></tr>';

		f += '<tr><td>'+s[7]+'</td><td><input type="text" id="invoice_showups" value="'+v[7]+'" /></td></tr>';

		f += '<tr><td>'+s[8]+'</td><td><input type="hidden" id="nothing1" value="00:00"><input type="text" id="invoice_period_start" style="width:70px;" value="'+v[8]+'" /> <img src="/extensions/hansaworld/px_hansaworld/images/cal.gif" id="awicalsel1"></td></tr>';

		f += '<tr><td>'+s[9]+'</td><td><input type="hidden" id="nothing2" value="23:59"><input type="text" id="invoice_period_end" style="width:70px;" value="'+v[9]+'" /> <img src="/extensions/hansaworld/px_hansaworld/images/cal.gif" id="awicalsel2"></td></tr>';

		f += '<tr><td>'+s[14]+'</td><td><input type="text" id="invoice_discount" value="'+v[12]+'" />%</td></tr>';

		f += '<tr><td>'+s[15]+'</td><td><input type="hidden" id="nothing3" value="23:59"><input type="text" id="invoice_deadline" style="width:70px;" value="'+v[13]+'" /> <img src="/extensions/hansaworld/px_hansaworld/images/cal.gif" id="awicalsel3"></td></tr>';

		f += '<tr><td>'+s[10]+'</td><td><input type="checkbox" id="invoice_is_confirmed" value="1" '+(parseInt(v[10]) == 1 ? 'checked="checked"' : '')+' /></td></tr>';

		f += '<tr><td>'+s[11]+'</td><td><input type="checkbox" id="invoice_is_payed" disabled="disabled" value="1" '+(parseInt(v[11]) == 1 ? 'checked="checked"' : '')+' /></td></tr>';

		if (parseInt(v[0]) > 0) {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\''+v[0]+'\',\'0\',\''+t+'\');return false;">'+s[12]+'</a>&nbsp;<a href="#" onclick="javascript:if(confirm(\''+s[13]+'?\')){eUs_(\''+v[0]+'\',\'1\',\''+t+'\');}return false;">'+s[13]+'</a></td></tr>';

		} else {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\'0\',\'0\',\''+t+'\');return false;">'+s[12]+'</a></td></tr>';

		}

		f += '</table>';

	}

	if (t == 'geninvoices') {

		var f = '<table cellpadding="0" cellspacing="0" border="0">';

		f += '<tr><td>'+s[0]+'</td><td><input type="hidden" id="nothing1" value="00:00"><input type="text" id="invoice_period_start" style="width:70px;" value="'+v[0]+'" /> <img src="/extensions/hansaworld/px_hansaworld/images/cal.gif" id="awicalsel1"></td></tr>';

		f += '<tr><td>'+s[1]+'</td><td><input type="hidden" id="nothing2" value="23:59"><input type="text" id="invoice_period_end" style="width:70px;" value="'+v[1]+'" /> <img src="/extensions/hansaworld/px_hansaworld/images/cal.gif" id="awicalsel2"></td></tr>';

		f += '<tr><td>'+s[2]+'</td><td><input type="hidden" id="nothing3" value="23:59"><input type="text" id="invoice_deadline" style="width:70px;" value="'+v[2]+'" /> <img src="/extensions/hansaworld/px_hansaworld/images/cal.gif" id="awicalsel3"></td></tr>';

		f += '<tr><td>'+s[3]+'</td><td><input type="text" id="invoice_discount" value="'+v[3]+'" />%</td></tr>';

		f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\'0\',\'0\',\''+t+'\');return false;">'+s[4]+'</a></td></tr>';

		f += '</table>';

	}

	if (t == 'payment') {

		var f = '<table cellpadding="0" cellspacing="0" border="0">';

		f += '<tr><td>'+s[1]+'</td><td><input type="hidden" id="payment_id" value="'+v[0]+'" /><input type="text" id="payment_reference_nr" disabled="disabled" value="'+v[1]+'" /></td></tr>';

		f += '<tr><td>'+s[2]+'</td><td><input type="text" id="payment_reference_nr_corrected" '+(parseInt(v[11]) == 1 ? 'disabled="disabled"' : '')+' value="'+v[2]+'" /></td></tr>';

		f += '<tr><td>'+s[3]+'</td><td><input type="text" id="payment_payer_name" '+((parseInt(v[11]) == 1 || parseInt(v[12]) != 1) ? 'disabled="disabled"' : '')+' value="'+v[3]+'" /></td></tr>';

		f += '<tr><td>'+s[4]+'</td><td><input type="text" id="payment_payer_personal_id" '+((parseInt(v[11]) == 1 || parseInt(v[12]) != 1) ? 'disabled="disabled"' : '')+' value="'+v[4]+'" /></td></tr>';

		f += '<tr><td>'+s[5]+'</td><td><textarea '+((parseInt(v[11]) == 1 || parseInt(v[12]) != 1) ? 'disabled="disabled"' : '')+' id="payment_description">'+v[5]+'</textarea></td></tr>';

		f += '<tr><td>'+s[6]+'</td><td><input type="text" id="payment_amount" '+((parseInt(v[11]) == 1 || parseInt(v[12]) != 1) ? 'disabled="disabled"' : '')+' value="'+v[6]+'" /></td></tr>';

		f += '<tr><td>'+s[7]+'</td><td><input type="text" id="payment_payer_account" '+((parseInt(v[11]) == 1 || parseInt(v[12]) != 1) ? 'disabled="disabled"' : '')+' value="'+v[7]+'" /></td></tr>';

		f += '<tr><td>'+s[8]+'</td><td><input type="text" id="payment_time" '+((parseInt(v[11]) == 1 || parseInt(v[12]) != 1) ? 'disabled="disabled"' : '')+' style="width:70px;" value="'+v[8]+'" /> <input type="hidden" id="nothing1" value="'+v[3]+'" /> '+(parseInt(v[11]) == 1 ? '' : '<img src="/extensions/hansaworld/px_hansaworld/images/cal.gif" id="awicalsel">')+'</td></tr>';

		f += '<tr><td>'+s[9]+'</td><td><input type="text" id="payment_import_time" disabled="disabled" value="'+v[9]+'" /></td></tr>';

		f += '<tr><td>'+s[10]+'</td><td><input type="text"  id="payment_file" disabled="disabled" value="'+v[10]+'" /></td></tr>';

		f += '<tr><td>'+s[11]+'</td><td><input type="checkbox" disabled="disabled" id="payment_is_checked" value="1" '+(parseInt(v[11]) == 1 ? 'checked="checked"' : '')+' /></td></tr>';

		f += '<tr><td>'+s[14]+'</td><td><input type="checkbox" disabled="disabled" id="payment_is_manual" value="1" '+(parseInt(v[12]) == 1 ? 'checked="checked"' : '')+' /></td></tr>';

		if (parseInt(v[0]) > 0) {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\''+v[0]+'\',\'0\',\''+t+'\');return false;">'+s[12]+'</a>&nbsp;<a href="#" '+(parseInt(v[11]) == 1 ? 'style="display:none;"' : '')+' onclick="javascript:if(confirm(\''+s[13]+'?\')){eUs_(\''+v[0]+'\',\'1\',\''+t+'\');}return false;">'+s[13]+'</a></td></tr>';

		} else {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\'0\',\'0\',\''+t+'\');return false;">'+s[12]+'</a></td></tr>';

		}

		f += '</table>';

	}

	if (t == 'traininggroup') {

		var sopt = '';

		var ssel = '';

		var v1 = v[1].split(',');

		;

		for (si in v[6]) {

			ssel = (in_array(v[6][si], v1) ? ' selected="selected" ' : '');

			sopt += '<option value="'+v[6][si]+'"'+ssel+'>'+v[7][si]+'</option>';

		}

		var f = '<table cellpadding="0" cellspacing="0" border="0">';

		f += '<tr><td>'+s[1]+'</td><td><select id="training_group_trainer_id" multiple="multiple">'+sopt+'</select></td></tr>';

		f += '<tr><td>'+s[2]+'</td><td><input type="text" id="training_group_name" value="'+v[2]+'" /></td></tr>';

		f += '<tr><td>'+s[3]+'</td><td><textarea id="training_group_description">'+v[3]+'</textarea></td></tr>';

		f += '<tr><td>'+s[8]+'</td><td><input type="text" id="training_group_price_month_code" value="'+v[8]+'" /></td></tr>';

		f += '<tr><td>'+s[4]+'</td><td><input type="text" id="training_group_price_month" value="'+v[4]+'" /></td></tr>';

		f += '<tr><td>'+s[9]+'</td><td><input type="text" id="training_group_price_training_code" value="'+v[9]+'" /></td></tr>';

		f += '<tr><td>'+s[5]+'</td><td><input type="text" id="training_group_price_training" value="'+v[5]+'" /></td></tr>';

		

		if (parseInt(v[0]) > 0) {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\''+v[0]+'\',\'0\',\''+t+'\');return false;">'+s[6]+'</a>&nbsp;<a href="#" onclick="javascript:if(confirm(\''+s[7]+'?\')){eUs_(\''+v[0]+'\',\'1\',\''+t+'\');}return false;">'+s[7]+'</a></td></tr>';

		} else {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\'0\',\'0\',\''+t+'\');return false;">'+s[6]+'</a></td></tr>';

		}

		f += '</table>';

	}

	if (t == 'traininggroupmember') {

		var sopt = '';

		var ssel = '';

		for (si in v[6]) {

			ssel = (v[6][si] == v[1] ? ' selected="selected" ' : '');

			sopt += '<option value="'+v[6][si]+'"'+ssel+'>'+v[7][si]+'</option>';

		}

		var f = '<table cellpadding="0" cellspacing="0" border="0">';

		if (parseInt(v[0]) > 0) {

			var ch_name = v[3]+' '+v[4]+' '+v[5];

		} else {

			var ch_name = '';

		}

		f += '<tr><td>'+s[1]+'</td><td><select id="contract_training_group_id">'+sopt+'</select></td></tr>';

		f += '<tr><td>'+s[4]+'</td><td><input type="hidden" id="contract_child_id" value="'+v[2]+'" /><input type="text" id="contract_child_name" value="'+ch_name+'" /></td></tr>';

		f += '<tr><td>'+s[8]+'</td><td><input type="text" id="contract_reference_nr" value="'+v[9]+'" /></td></tr>';

		f += '<tr><td>'+s[7]+'</td><td><input type="text" id="contract_discount" value="'+v[8]+'" />%</td></tr>';

		f += '<tr><td>'+s[9]+'</td><td><input type="text" id="contract_end_date" style="width:70px;" value="'+v[10]+'" /> <input type="hidden" style="width:40px;" id="nothing2" value="23:59" /> <img src="/extensions/hansaworld/px_hansaworld/images/cal.gif" id="awicalsel2"></td></tr>';

		f += '<tr><td>'+s[10]+'</td><td><input type="checkbox" id="contract_is_stopped" value="1" '+(parseInt(v[11]) == 1 ? 'checked="checked"' : '')+' /></td></tr>';

		if (parseInt(v[0]) > 0) {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\''+v[0]+'\',\'0\',\''+t+'\');return false;">'+s[5]+'</a>&nbsp;<a href="#" onclick="javascript:if(confirm(\''+s[6]+'?\')){eUs_(\''+v[0]+'\',\'1\',\''+t+'\');}return false;">'+s[6]+'</a></td></tr>';

		} else {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\'0\',\'0\',\''+t+'\');return false;">'+s[5]+'</a></td></tr>';

		}

		f += '</table>';

	}

	if (t == 'training') {

		var sopt = '';

		var ssel = '';

		for (si in v[4]) {

			ssel = (v[4][si] == v[1] ? ' selected="selected" ' : '');

			sopt += '<option value="'+v[4][si]+'"'+ssel+'>'+v[5][si]+'</option>';

		}

		var topt = '';

		var tsel = '';

		for (ti in v[6]) {

			tsel = (v[6][ti] == v[8] ? ' selected="selected" ' : '');

			topt += '<option value="'+v[6][ti]+'"'+tsel+'>'+v[7][ti]+'</option>';

		}

		var f = '<table cellpadding="0" cellspacing="0" border="0">';

		f += '<tr><td>'+s[6]+'</td><td><select id="training_trainer_id">'+topt+'</select></td></tr>';

		f += '<tr><td>'+s[1]+'</td><td><select id="training_group_id">'+sopt+'</select></td></tr>';

		f += '<tr><td>'+s[2]+'</td><td><input type="text" id="training_date" style="width:70px;" value="'+v[2]+'" /> <input type="text" style="width:40px;" id="training_time" value="'+v[3]+'" /> <img src="/extensions/hansaworld/px_hansaworld/images/cal.gif" id="awicalsel"></td></tr>';

		if (parseInt(v[0]) > 0) {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\''+v[0]+'\',\'0\',\''+t+'\');return false;">'+s[4]+'</a>&nbsp;<a href="#" onclick="javascript:if(confirm(\''+s[5]+'?\')){eUs_(\''+v[0]+'\',\'1\',\''+t+'\');}return false;">'+s[5]+'</a></td></tr>';

		} else {

			f +='<tr><td></td><td id="ajaxloadc"><a id="ajaxsubmit" href="#" onclick="javascript:eUs_(\'0\',\'0\',\''+t+'\');return false;">'+s[4]+'</a></td></tr>';

		}

		f += '</table>';

	}

	AWIDiv(e,f);

	if (t == 'training') {

		calSetup('training_date','training_time','awicalsel');

	}

	if (t == 'payment' && parseInt(v[11]) != 1) {

		calSetup('payment_time','nothing1','awicalsel');

	}

	if (t == 'traininggroupmember') {

		jQuery("#contract_child_name").autocomplete("/extensions/hansaworld/suggest_child.php", {assignTo:'#contract_child_id', minChars:1, matchSubset:0, matchContains:0, cacheLength:10, onItemSelect:selectItem, formatItem:formatItem, selectOnly:1 });	

		calSetup('contract_end_date','nothing2','awicalsel2');

	}

	if (t == 'invoice') {

		jQuery("#invoice_contract_info").autocomplete("/extensions/hansaworld/suggest_contract.php", {assignTo:'#invoice_contract_id', minChars:1, matchSubset:0, matchContains:0, cacheLength:10, onItemSelect:selectItem, formatItem:formatItem, selectOnly:1 });	

		calSetup('invoice_period_start','nothing1','awicalsel1');

		calSetup('invoice_period_end','nothing2','awicalsel2');

		calSetup('invoice_deadline','nothing3','awicalsel3');

	}

	if (t == 'geninvoices') {

		calSetup('invoice_period_start','nothing1','awicalsel1');

		calSetup('invoice_period_end','nothing2','awicalsel2');

		calSetup('invoice_deadline','nothing3','awicalsel3');

	}

}

//------------------------------

function eUs_(u,d,t) {

	//+"&user_pw="+jQuery('#user_pw').val()+"&user_pw_="+jQuery('#user_pw_').val()

	jQuery('#awieditor').animate({backgroundColor:'#FFFFFF'}, 'fast');

	jQuery('#ajaxloadc').append('<img id="ajaxload" src="/extensions/hansaworld/px_hansaworld/images/ajax_loading.gif">');

	if (t == 'user') {	

		if (d == '1') {

			var data_ = "action=delete&user_id="+u;

		} else {

			var data_ = (parseInt(u) > 0 ? "action=update&user_id="+u : "action=register")+"&user_group_id="+jQuery('#user_group_id').val()+"&user_un="+jQuery('#user_un').val()+"&user_firstname="+jQuery('#user_firstname').val()+"&user_lastname="+jQuery('#user_lastname').val()+"&user_email="+jQuery('#user_email').val()+"&user_email2="+jQuery('#user_email2').val()+"&user_phone="+jQuery('#user_phone').val()+"&user_address="+jQuery('#user_address').val()+"&user_personal_id="+jQuery('#user_personal_id').val();

		}

	}

	if (t == 'child') {	

		if (d == '1') {

			var data_ = "action=delete&child_id="+u;

		} else {

			var data_ = (parseInt(u) > 0 ? "action=update&child_id="+u : "action=add")+"&child_parent_id="+jQuery('#child_parent_id').val()+"&child_class_id="+jQuery('#child_class_id').val()+"&child_firstname="+jQuery('#child_firstname').val()+"&child_lastname="+jQuery('#child_lastname').val()+"&child_personal_id="+jQuery('#child_personal_id').val();

		}

	}

	if (t == 'school') {	

		if (d == '1') {

			var data_ = "action=delete&school_id="+u;

		} else {

			var data_ = (parseInt(u) > 0 ? "action=update&school_id="+u : "action=add")+"&school_name="+jQuery('#school_name').val()+"&school_address="+jQuery('#school_address').val();

		}

	}

	if (t == 'class') {	

		if (d == '1') {

			var data_ = "action=delete&class_id="+u;

		} else {

			var data_ = (parseInt(u) > 0 ? "action=update&class_id="+u : "action=add")+"&class_school_id="+jQuery('#class_school_id').val()+"&class_name="+jQuery('#class_name').val();

		}

	}

	if (t == 'invoice') {	

		if (d == '1') {

			var data_ = "action=delete&invoice_id="+u;

		} else {

			var data_ = (parseInt(u) > 0 ? "action=update&invoice_id="+u : "action=add")+"&invoice_contract_id="+jQuery('#invoice_contract_id').val()+"&invoice_price_month="+jQuery('#invoice_price_month').val()+"&invoice_price_training="+jQuery('#invoice_price_training').val()+"&invoice_showups="+jQuery('#invoice_showups').val()+"&invoice_period_start="+jQuery('#invoice_period_start').val()+"&invoice_period_end="+jQuery('#invoice_period_end').val()+"&invoice_discount="+jQuery('#invoice_discount').val()+"&invoice_is_confirmed="+(jQuery('#invoice_is_confirmed').attr('checked') == true ? '1' : '0')+"&invoice_is_payed="+(jQuery('#invoice_is_payed').attr('checked') == true ? '1' : '0')+"&invoice_deadline="+jQuery('#invoice_deadline').val()+"&invoice_reference_nr="+jQuery('#invoice_reference_nr').val();

		}

	}	

	if (t == 'payment') {	

		if (d == '1') {

			var data_ = "action=delete&payment_id="+u;

		} else {

			var data_ = (parseInt(u) > 0 ? "action=update&payment_id="+u : "action=add")+"&payment_payer_name="+jQuery('#payment_payer_name').val()+"&payment_payer_personal_id="+jQuery('#payment_payer_personal_id').val()+"&payment_description="+jQuery('#payment_description').val()+"&payment_amount="+jQuery('#payment_amount').val()+"&payment_payer_account="+jQuery('#payment_payer_account').val()+"&payment_time="+jQuery('#payment_time').val()+"&payment_reference_nr_corrected="+jQuery('#payment_reference_nr_corrected').val();

		}

	}	

	if (t == 'geninvoices') {	

		var data_ = "action=generate&invoice_period_start="+jQuery('#invoice_period_start').val()+"&invoice_period_end="+jQuery('#invoice_period_end').val()+"&invoice_deadline="+jQuery('#invoice_deadline').val()+"&invoice_discount="+jQuery('#invoice_discount').val();

		t = 'invoice';

	}	

	if (t == 'traininggroup') {	

		if (d == '1') {

			var data_ = "action=delete&training_group_id="+u;

		} else {

			var data_ = (parseInt(u) > 0 ? "action=update&training_group_id="+u : "action=add")+"&training_group_trainer_id="+jQuery('#training_group_trainer_id').val()+"&training_group_name="+jQuery('#training_group_name').val()+"&training_group_description="+jQuery('#training_group_description').val()+"&training_group_price_month="+jQuery('#training_group_price_month').val()+"&training_group_price_training="+jQuery('#training_group_price_training').val()+"&training_group_price_month_code="+jQuery('#training_group_price_month_code').val()+"&training_group_price_training_code="+jQuery('#training_group_price_training_code').val();

		}

	}

	if (t == 'traininggroupmember') {

		if (d == '1') {

			var data_ = "action=delete&contract_id="+u;

		} else {

			var data_ = (parseInt(u) > 0 ? "action=update&contract_id="+u : "action=add")+"&contract_training_group_id="+jQuery('#contract_training_group_id').val()+"&contract_child_id="+jQuery('#contract_child_id').val()+"&contract_discount="+jQuery('#contract_discount').val()+"&contract_reference_nr="+jQuery('#contract_reference_nr').val()+"&contract_end_date="+jQuery('#contract_end_date').val()+"&contract_is_stopped="+(jQuery('#contract_is_stopped').attr('checked') == true ? '1' : '0');//contract_end_date, contract_is_stopped

		}

	}

	if (t == 'training') {

		if (d == '1') {

			var data_ = "action=delete&training_id="+u;

		} else {

			var data_ = (parseInt(u) > 0 ? "action=update&training_id="+u : "action=add")+"&training_training_group_id="+jQuery('#training_group_id').val()+"&training_date="+jQuery('#training_date').val()+"&training_time="+jQuery('#training_time').val()+"&training_trainer_id="+jQuery('#training_trainer_id').val();

		}

	}

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/hansaworld/edit_'+t+'.php',

	   data: data_,

	   dataType:"html",

	   processData:false,

	   success: function(data){//alert(data);

			jQuery('font[class="hw_error"]').remove();

			if (trim(data) == '1') {

			   jQuery('#awieditor').animate({backgroundColor:'#FFFFFF'}, 'fast').animate({backgroundColor:'#DBEFAB'}, 'slow').fadeOut('slow');

			   window.location.reload();

			} else if (data == '0') {

			   jQuery('#awieditor').animate({backgroundColor:'#FFFFFF'}, 'fast').animate({backgroundColor:'#FFD2D2'}, 'slow');

			} else {

			   	var err = data.split('<awi,>');

			   	for (i in err) {

					var err_ = err[i].split('<awi:>');   

					jQuery('#'+err_[0]).parent("td").append(' <font class="hw_error">'+err_[1]+'</font>');

				}

			}	

			jQuery('#ajaxload').remove();

	   },

		error:function (XMLHttpRequest, textStatus, errorThrown) {

			alert(errorThrown);jQuery('#ajaxload').remove();

		}

	 });	

}

//------------------------------

function sendInvoice(invoice_id) {

	

	jQuery('font[class="hw_error"]').remove();

	//jQuery('#invoicelinks_'+invoice_id).append('<img id="ajaxload" src="/extensions/hansaworld/px_hansaworld/images/ajax_loading.gif">');

	var subject = ((jQuery('#change_subject').attr('checked') == true && trim(jQuery('#email_subject').val()) != '') ? '&subject='+htmlspecialchars(jQuery('#email_subject').val()) : '');

	var body_ = ((jQuery('#change_subject').attr('checked') == true && trim(jQuery('#email_body').val()) != '') ? '&body='+htmlspecialchars(jQuery('#email_body').val()) : '');

	var req = jQuery.ajax({

	   type: "POST",

	   url: '/extensions/hansaworld/send_invoice.php',

	   data: 'invoice_id='+invoice_id+subject+body_,

	   dataType:"html",

	   processData:false,

	   success: function(data){

			jQuery('#ajaxload').remove();

			jQuery('#invoicelinks_'+invoice_id).append('<font class="hw_error">'+data+'</font>');

			jQuery('#send_selected_invoices_link').after(' <font class="hw_error">'+data+'</font> ');

			window.setTimeout('window.location.reload()',2);

	   },

		error:function (XMLHttpRequest, textStatus, errorThrown) {

			//alert(errorThrown);

			jQuery('#ajaxload').remove();

		}

	 });req = false;

	jQuery('#ajaxload').remove();

}

//------------------------------

function confInvoice(iids,c) {

	

	jQuery('font[class="hw_error"]').remove();

	//jQuery('#invoicelinks_'+invoice_id).append('<img id="ajaxload" src="/extensions/hansaworld/px_hansaworld/images/ajax_loading.gif">');

	var req = jQuery.ajax({

	   type: "POST",

	   url: '/extensions/hansaworld/edit_invoice.php',

	   data: 'action=confirm&iids='+iids+'&confirmed='+c,

	   dataType:"html",

	   processData:false,

	   success: function(data){

			jQuery('#ajaxload').remove();

			//jQuery('#invoicelinks_'+invoice_id).append('<font class="hw_error">'+data+'</font>');

	   },

		error:function (XMLHttpRequest, textStatus, errorThrown) {

			//alert(errorThrown);

			jQuery('#ajaxload').remove();

		}

	 });req = false;

	jQuery('#ajaxload').remove();

}

//------------------------------

function selInvs(c) {

	jQuery('input[id^="sel_invoice_"]').each(function(){

		jQuery(this).attr('checked', c);

	});

	return (c == true ? false : true);

}

//------------------------------

function selPmts(c) {

	jQuery('input[id^="sel_payment_"]').each(function(){

		jQuery(this).attr('checked', c);

	});

	return (c == true ? false : true);

}

//------------------------------

function sendInvs() {

	var iids = new Array();

	jQuery('input[id^="sel_invoice_"]:checked').each(function(i){

		var iid = jQuery(this).attr('id');

		var iid_ = iid.split('_');

		iids[i] = iid_[2];

	});

	if (iids.length > 0) sendInvoice(iids.join(','));

}

//------------------------------

function confInvs(c) {

	var iids = new Array();

	jQuery('input[id^="sel_invoice_"]:checked').each(function(i){

		var iid = jQuery(this).attr('id');

		var iid_ = iid.split('_');

		iids[i] = iid_[2];

	});

	if (iids.length > 0) confInvoice(iids.join(','),c);

   	window.setTimeout('window.location.reload()',2);

}

//------------------------------

function checkPmts(c) {

	var iids = new Array();

	jQuery('input[id^="sel_payment_"]:checked').each(function(i){

		var iid = jQuery(this).attr('id');

		var iid_ = iid.split('_');

		iids[i] = iid_[2];

	});

	if (iids.length > 0) checkPayment(iids.join(','),c);

   	window.setTimeout('window.location.reload()',2);

}

//------------------------------

function checkPayment(iids,c) {

	

	jQuery('font[class="hw_error"]').remove();

	//jQuery('#invoicelinks_'+invoice_id).append('<img id="ajaxload" src="/extensions/hansaworld/px_hansaworld/images/ajax_loading.gif">');

	var req = jQuery.ajax({

	   type: "POST",

	   url: '/extensions/hansaworld/edit_payment.php',

	   data: 'action=check&iids='+iids+'&checked='+c,

	   dataType:"html",

	   processData:false,

	   success: function(data){

			jQuery('#ajaxload').remove();

			//jQuery('#invoicelinks_'+invoice_id).append('<font class="hw_error">'+data+'</font>');

	   },

		error:function (XMLHttpRequest, textStatus, errorThrown) {

			//alert(errorThrown);

			jQuery('#ajaxload').remove();

		}

	 });req = false;

	jQuery('#ajaxload').remove();

}

//------------------------------

function lockMonth(tg,m,y,a) {



	jQuery('font[class="hw_error"]').remove();

	jQuery('#url_'+a+'_month').after(' <img id="ajaxload" src="/extensions/hansaworld/px_hansaworld/images/ajax_loading.gif">');

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/hansaworld/edit_training.php',

	   data: 'action='+a+'&training_training_group_id='+tg+'&month='+m+'&year='+y,

	   dataType:"html",

	   processData:false,

	   success: function(data){

			jQuery('#ajaxload').remove();

			if (data == '1') {

				document.location.reload();

			} else {

				jQuery('#url_'+a+'_month').after('<font class="hw_error">'+data+'</font>');

			}

	   },

		error:function (XMLHttpRequest, textStatus, errorThrown) {

			alert(errorThrown);jQuery('#ajaxload').remove();

		}

	 });

	jQuery('#ajaxload').remove();

}

//------------------------------

function monthRate(cid,m,y) {



	jQuery('font[class="hw_error"]').remove();

	jQuery('#monthrate_percent_'+cid).parent("td").append(' <img id="ajaxload" src="/extensions/hansaworld/px_hansaworld/images/ajax_loading.gif">');

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/hansaworld/edit_monthrate.php',

	   data: 'action=edit&cid='+cid+'&month='+m+'&year='+y+'&percent='+jQuery('#monthrate_percent_'+cid).val(),

	   dataType:"html",

	   processData:false,

	   success: function(data){

			jQuery('#ajaxload').remove();

			if (trim(data) == '1') {

			   jQuery('#monthrate_percent_'+cid).animate({backgroundColor:'#FFFFFF'}, 'fast').animate({backgroundColor:'#DBEFAB'}, 'slow');

				jQuery('#calc_monthrate_percent_'+cid).remove();													  

				var newprice = formatCurrency(parseFloat(jQuery('#monthrate_percent_'+cid).attr('lang')) * parseInt(jQuery('#monthrate_percent_'+cid).val()) / 100);

				jQuery('#monthrate_percent_'+cid).parent('td').append('<font id="calc_monthrate_percent_'+cid+'">'+newprice+'</div>');														  		

			} else {

				jQuery('#monthrate_percent_'+cid).parent("td").append('<font class="hw_error">'+data+'</font>');

			}

	   },

		error:function (XMLHttpRequest, textStatus, errorThrown) {

			alert(errorThrown);jQuery('#ajaxload').remove();

		}

	 });

	jQuery('#ajaxload').remove();

}

//------------------------------

function toggleCntrEndCheckbox(cid) {

	return;

	if (jQuery('#contract_end_date_'+cid).val().length == 10) {

		jQuery('#contract_is_stopped_'+cid).css('display','block');

	} else {

		jQuery('#contract_is_stopped_'+cid).css('display','none');

	}

	return;

}

//------------------------------

function cntrEndDate(cid) {

	jQuery('font[class="hw_error"]').remove();

	jQuery('#contract_end_date_'+cid).parent("td").css('background-color','#FFFFFF').append(' <img id="ajaxload" src="/extensions/hansaworld/px_hansaworld/images/ajax_loading.gif">');

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/hansaworld/edit_traininggroupmember.php',

	   data: 'action=edit_enddate&contract_id='+cid+'&contract_end_date='+jQuery('#contract_end_date_'+cid).val(),

	   dataType:"html",

	   processData:false,

	   success: function(data){

			jQuery('#ajaxload').remove();

			if (trim(data) == '1') {

			   jQuery('#contract_end_date_'+cid).parent("td").animate({backgroundColor:'#DBEFAB'}, 'slow');

			} else {

				jQuery('#contract_end_date_'+cid).parent("td").append('<font class="hw_error">'+data+'</font>');

			}

	   },

		error:function (XMLHttpRequest, textStatus, errorThrown) {

			alert(errorThrown);jQuery('#ajaxload').remove();

		}

	 });

	jQuery('#ajaxload').remove();

}

//------------------------------contract_is_stopped

function cntrStop(cid) {

	jQuery('font[class="hw_error"]').remove();

	jQuery('#contract_is_stopped_'+cid).parent("td").css('background-color','#FFFFFF').append(' <img id="ajaxload" src="/extensions/hansaworld/px_hansaworld/images/ajax_loading.gif">');

	jQuery.ajax({

	   type: "POST",

	   url: '/extensions/hansaworld/edit_traininggroupmember.php',

	   data: 'action=edit_stop&contract_id='+cid+"&contract_is_stopped="+(jQuery('#contract_is_stopped_'+cid).attr('checked') == true ? '1' : '0'),

	   dataType:"html",

	   processData:false,

	   success: function(data){

			jQuery('#ajaxload').remove();

			if (trim(data) == '1') {

			   jQuery('#contract_is_stopped_'+cid).parent("td").animate({backgroundColor:'#DBEFAB'}, 'slow');

			} else {

			   jQuery('#contract_is_stopped_'+cid).parent("td").append('<font class="hw_error">'+data+'</font>');

			}

	   },

		error:function (XMLHttpRequest, textStatus, errorThrown) {

			alert(errorThrown);jQuery('#ajaxload').remove();

		}

	 });

	jQuery('#ajaxload').remove();

}

//------------------------------

function orderInvs(i,u) {

	var v = '';

	if (jQuery('#'+i).val() == 'asc') v = 'desc';

	//if (jQuery('#'+i).val() == 'desc') v = '';

	if (jQuery('#'+i).val() == 'desc' || jQuery('#'+i).val() == '') v = 'asc';

	jQuery('#'+i).val(v);

	jQuery('#search_invoices').submit()

}

//------------------------------

function unorderInvs(i) {

	jQuery('#'+i).val('');

	jQuery('#search_invoices').submit()

}

//------------------------------

function orderPmts(i,u) {

	var v = '';

	if (jQuery('#'+i).val() == 'asc') v = 'desc';

	//if (jQuery('#'+i).val() == 'desc') v = '';

	if (jQuery('#'+i).val() == 'desc' || jQuery('#'+i).val() == '') v = 'asc';

	jQuery('#'+i).val(v);

	jQuery('#search_payments').submit()

}

//------------------------------

function unorderPmts(i) {

	jQuery('#'+i).val('');

	jQuery('#search_payments').submit()

}

//------------------------------

function formatCurrency(num) {

	num = num.toString().replace(/\$|\,/g,'');

	if(isNaN(num))

	num = "0";

	sign = (num == (num = Math.abs(num)));

	num = Math.floor(num*100+0.50000000001);

	cents = num%100;

	num = Math.floor(num/100).toString();

	if(cents<10)

	cents = "0" + cents;

	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)

	num = num.substring(0,num.length-(4*i+3))+','+

	num.substring(num.length-(4*i+3));

	return (((sign)?'':'-') + num + '.' + cents);

}

//------------------------------

function AWIDiv(append_elem,content) {

	var os = append_elem.offset();

	jQuery('#awieditor').remove();

	jQuery('body').append('<div id="awieditor" style="background:#ffffff;height:auto;width:50px;position:absolute;z-index:0;visibility:hidden;font-family: Arial, Helvetica, sans-serif;font-size:11px;font-color:#666666;border-color:#00C;border-style:solid;border-bottom-width:1px;border-left-width:1px;border-right-width:1px;border-top-width:1px;vertical-align:top;padding:5px;"></div>');

	jQuery('#awieditor').css('visibility', 'hidden');

	//var req = jQuery.ajax({type: 'GET', url:url,success: function(data){jQuery('#awieditor').html(data);}});req=null;

	jQuery('#awieditor').html('<!--a href="#" style="margin:0px;padding:0px;vertical-align:top;float:right;text-decoration:none;" onClick="jQuery(\'#awieditor\').remove();return false;"><b>&times;</b></a><br-->'+content);

	jQuery('#awieditor').css('width','auto').css('left', os.left + 10).css('top', os.top).css('visibility', 'visible');

	return false;

}

//-------------------------------

function selectItem(li) {

	if (li.extra) {

		//alert("That's '" + li.extra[0] + "' you picked.");

	}

}

function formatItem(row) {

	if (row != '') {

		return row[0]+'<br><i>'+row[1]+'</i>';

	}

	return;

}															

//--------------------------------

function in_array (needle, haystack, argStrict) {

    // http://kevin.vanzonneveld.net

    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

    // +   improved by: vlado houba

    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);

    // *     returns 1: true

    // *     example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'});

    // *     returns 2: false

    // *     example 3: in_array(1, ['1', '2', '3']);

    // *     returns 3: true

    // *     example 3: in_array(1, ['1', '2', '3'], false);

    // *     returns 3: true

    // *     example 4: in_array(1, ['1', '2', '3'], true);

    // *     returns 4: false

 

    var key = '', strict = !!argStrict;

 

    if (strict) {

        for (key in haystack) {

            if (haystack[key] === needle) {

                return true;

            }

        }

    } else {

        for (key in haystack) {

            if (haystack[key] == needle) {

                return true;

            }

        }

    }

 

    return false;

}

//---------------------------------

function htmlspecialchars (string, quote_style) {

    // Convert special characters to HTML entities 

    //

    // version: 909.322

    // discuss at: http://phpjs.org/functions/htmlspecialchars

    // +   original by: Mirek Slugen

    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

    // +   bugfixed by: Nathan

    // +   bugfixed by: Arno

    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

    // +    bugfixed by: Brett Zamir (http://brett-zamir.me)

    // +      input by: Ratheous

    // -    depends on: get_html_translation_table

    // *     example 1: htmlspecialchars("<a href='test'>Test</a>", 'ENT_QUOTES');

    // *     returns 1: '&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;'

    var hash_map = {}, symbol = '', tmp_str = '', entity = '';

    tmp_str = string.toString();

    

    if (false === (hash_map = this.get_html_translation_table('HTML_SPECIALCHARS', quote_style))) {

        return false;

    }

     

    hash_map["'"] = '&#039;';

    for (symbol in hash_map) {

        entity = hash_map[symbol];

        tmp_str = tmp_str.split(symbol).join(entity);

    }

     

    return escape(tmp_str);

}

//-------------------------------------------

function get_html_translation_table (table, quote_style) {

    // Returns the internal translation table used by htmlspecialchars and htmlentities 

    //

    // version: 909.322

    // discuss at: http://phpjs.org/functions/get_html_translation_table

    // +   original by: Philip Peterson

    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

    // +   bugfixed by: noname

    // +   bugfixed by: Alex

    // +   bugfixed by: Marco

    // +   bugfixed by: madipta

    // +   improved by: KELAN

    // +   improved by: Brett Zamir (http://brett-zamir.me)

    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)

    // +      input by: Frank Forte

    // +   bugfixed by: T.Wild

    // +      input by: Ratheous

    // %          note: It has been decided that we're not going to add global

    // %          note: dependencies to php.js, meaning the constants are not

    // %          note: real constants, but strings instead. Integers are also supported if someone

    // %          note: chooses to create the constants themselves.

    // *     example 1: get_html_translation_table('HTML_SPECIALCHARS');

    // *     returns 1: {'"': '&quot;', '&': '&amp;', '<': '&lt;', '>': '&gt;'}

     

    var entities = {}, hash_map = {}, decimal = 0, symbol = '';

    var constMappingTable = {}, constMappingQuoteStyle = {};

    var useTable = {}, useQuoteStyle = {};

     

    // Translate arguments

    constMappingTable[0]      = 'HTML_SPECIALCHARS';

    constMappingTable[1]      = 'HTML_ENTITIES';

    constMappingQuoteStyle[0] = 'ENT_NOQUOTES';

    constMappingQuoteStyle[2] = 'ENT_COMPAT';

    constMappingQuoteStyle[3] = 'ENT_QUOTES';

 

    useTable       = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';

    useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';

 

    if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') {

        throw new Error("Table: "+useTable+' not supported');

        // return false;

    }

 

    entities['38'] = '&amp;';

    if (useTable === 'HTML_ENTITIES') {

        entities['160'] = '&nbsp;';

        entities['161'] = '&iexcl;';

        entities['162'] = '&cent;';

        entities['163'] = '&pound;';

        entities['164'] = '&curren;';

        entities['165'] = '&yen;';

        entities['166'] = '&brvbar;';

        entities['167'] = '&sect;';

        entities['168'] = '&uml;';

        entities['169'] = '&copy;';

        entities['170'] = '&ordf;';

        entities['171'] = '&laquo;';

        entities['172'] = '&not;';

        entities['173'] = '&shy;';

        entities['174'] = '&reg;';

        entities['175'] = '&macr;';

        entities['176'] = '&deg;';

        entities['177'] = '&plusmn;';

        entities['178'] = '&sup2;';

        entities['179'] = '&sup3;';

        entities['180'] = '&acute;';

        entities['181'] = '&micro;';

        entities['182'] = '&para;';

        entities['183'] = '&middot;';

        entities['184'] = '&cedil;';

        entities['185'] = '&sup1;';

        entities['186'] = '&ordm;';

        entities['187'] = '&raquo;';

        entities['188'] = '&frac14;';

        entities['189'] = '&frac12;';

        entities['190'] = '&frac34;';

        entities['191'] = '&iquest;';

        entities['192'] = '&Agrave;';

        entities['193'] = '&Aacute;';

        entities['194'] = '&Acirc;';

        entities['195'] = '&Atilde;';

        entities['196'] = '&Auml;';

        entities['197'] = '&Aring;';

        entities['198'] = '&AElig;';

        entities['199'] = '&Ccedil;';

        entities['200'] = '&Egrave;';

        entities['201'] = '&Eacute;';

        entities['202'] = '&Ecirc;';

        entities['203'] = '&Euml;';

        entities['204'] = '&Igrave;';

        entities['205'] = '&Iacute;';

        entities['206'] = '&Icirc;';

        entities['207'] = '&Iuml;';

        entities['208'] = '&ETH;';

        entities['209'] = '&Ntilde;';

        entities['210'] = '&Ograve;';

        entities['211'] = '&Oacute;';

        entities['212'] = '&Ocirc;';

        entities['213'] = '&Otilde;';

        entities['214'] = '&Ouml;';

        entities['215'] = '&times;';

        entities['216'] = '&Oslash;';

        entities['217'] = '&Ugrave;';

        entities['218'] = '&Uacute;';

        entities['219'] = '&Ucirc;';

        entities['220'] = '&Uuml;';

        entities['221'] = '&Yacute;';

        entities['222'] = '&THORN;';

        entities['223'] = '&szlig;';

        entities['224'] = '&agrave;';

        entities['225'] = '&aacute;';

        entities['226'] = '&acirc;';

        entities['227'] = '&atilde;';

        entities['228'] = '&auml;';

        entities['229'] = '&aring;';

        entities['230'] = '&aelig;';

        entities['231'] = '&ccedil;';

        entities['232'] = '&egrave;';

        entities['233'] = '&eacute;';

        entities['234'] = '&ecirc;';

        entities['235'] = '&euml;';

        entities['236'] = '&igrave;';

        entities['237'] = '&iacute;';

        entities['238'] = '&icirc;';

        entities['239'] = '&iuml;';

        entities['240'] = '&eth;';

        entities['241'] = '&ntilde;';

        entities['242'] = '&ograve;';

        entities['243'] = '&oacute;';

        entities['244'] = '&ocirc;';

        entities['245'] = '&otilde;';

        entities['246'] = '&ouml;';

        entities['247'] = '&divide;';

        entities['248'] = '&oslash;';

        entities['249'] = '&ugrave;';

        entities['250'] = '&uacute;';

        entities['251'] = '&ucirc;';

        entities['252'] = '&uuml;';

        entities['253'] = '&yacute;';

        entities['254'] = '&thorn;';

        entities['255'] = '&yuml;';

    }

 

    if (useQuoteStyle !== 'ENT_NOQUOTES') {

        entities['34'] = '&quot;';

    }

    if (useQuoteStyle === 'ENT_QUOTES') {

        entities['39'] = '&#39;';

    }

    entities['60'] = '&lt;';

    entities['62'] = '&gt;';

 

 

    // ascii decimals to real symbols

    for (decimal in entities) {

        symbol = String.fromCharCode(decimal);

        hash_map[symbol] = entities[decimal];

    }

     

    return hash_map;

}

//--------------------------------------

function nl2br (str, is_xhtml) {

    // Converts newlines to HTML line breaks 

    // version: 911.1619

    // discuss at: http://phpjs.org/functions/nl2br

    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

    // +   improved by: Philip Peterson

    // +   improved by: Onno Marsman

    // +   improved by: Atli Þór

    // +   bugfixed by: Onno Marsman

    // +      input by: Brett Zamir (http://brett-zamir.me)

    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

    // +   improved by: Brett Zamir (http://brett-zamir.me)

    // +   improved by: Maximusya

    // *     example 1: nl2br('Kevin\nvan\nZonneveld');

    // *     returns 1: 'Kevin<br />\nvan<br />\nZonneveld'

    // *     example 2: nl2br("\nOne\nTwo\n\nThree\n", false);

    // *     returns 2: '<br>\nOne<br>\nTwo<br>\n<br>\nThree<br>\n'

    // *     example 3: nl2br("\nOne\nTwo\n\nThree\n", true);

    // *     returns 3: '<br />\nOne<br />\nTwo<br />\n<br />\nThree<br />\n'

    var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';

    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ breakTag +'$2');

}
