/*
 * md5
 */

var hexcase=0;function hex_md5(a){return rstr2hex(rstr_md5(str2rstr_utf8(a)))}function hex_hmac_md5(a,b){return rstr2hex(rstr_hmac_md5(str2rstr_utf8(a),str2rstr_utf8(b)))}function md5_vm_test(){return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72"}function rstr_md5(a){return binl2rstr(binl_md5(rstr2binl(a),a.length*8))}function rstr_hmac_md5(c,f){var e=rstr2binl(c);if(e.length>16){e=binl_md5(e,c.length*8)}var a=Array(16),d=Array(16);for(var b=0;b<16;b++){a[b]=e[b]^909522486;d[b]=e[b]^1549556828}var g=binl_md5(a.concat(rstr2binl(f)),512+f.length*8);return binl2rstr(binl_md5(d.concat(g),512+128))}function rstr2hex(c){try{hexcase}catch(g){hexcase=0}var f=hexcase?"0123456789ABCDEF":"0123456789abcdef";var b="";var a;for(var d=0;d<c.length;d++){a=c.charCodeAt(d);b+=f.charAt((a>>>4)&15)+f.charAt(a&15)}return b}function str2rstr_utf8(c){var b="";var d=-1;var a,e;while(++d<c.length){a=c.charCodeAt(d);e=d+1<c.length?c.charCodeAt(d+1):0;if(55296<=a&&a<=56319&&56320<=e&&e<=57343){a=65536+((a&1023)<<10)+(e&1023);d++}if(a<=127){b+=String.fromCharCode(a)}else{if(a<=2047){b+=String.fromCharCode(192|((a>>>6)&31),128|(a&63))}else{if(a<=65535){b+=String.fromCharCode(224|((a>>>12)&15),128|((a>>>6)&63),128|(a&63))}else{if(a<=2097151){b+=String.fromCharCode(240|((a>>>18)&7),128|((a>>>12)&63),128|((a>>>6)&63),128|(a&63))}}}}}return b}function rstr2binl(b){var a=Array(b.length>>2);for(var c=0;c<a.length;c++){a[c]=0}for(var c=0;c<b.length*8;c+=8){a[c>>5]|=(b.charCodeAt(c/8)&255)<<(c%32)}return a}function binl2rstr(b){var a="";for(var c=0;c<b.length*32;c+=8){a+=String.fromCharCode((b[c>>5]>>>(c%32))&255)}return a}function binl_md5(p,k){p[k>>5]|=128<<((k)%32);p[(((k+64)>>>9)<<4)+14]=k;var o=1732584193;var n=-271733879;var m=-1732584194;var l=271733878;for(var g=0;g<p.length;g+=16){var j=o;var h=n;var f=m;var e=l;o=md5_ff(o,n,m,l,p[g+0],7,-680876936);l=md5_ff(l,o,n,m,p[g+1],12,-389564586);m=md5_ff(m,l,o,n,p[g+2],17,606105819);n=md5_ff(n,m,l,o,p[g+3],22,-1044525330);o=md5_ff(o,n,m,l,p[g+4],7,-176418897);l=md5_ff(l,o,n,m,p[g+5],12,1200080426);m=md5_ff(m,l,o,n,p[g+6],17,-1473231341);n=md5_ff(n,m,l,o,p[g+7],22,-45705983);o=md5_ff(o,n,m,l,p[g+8],7,1770035416);l=md5_ff(l,o,n,m,p[g+9],12,-1958414417);m=md5_ff(m,l,o,n,p[g+10],17,-42063);n=md5_ff(n,m,l,o,p[g+11],22,-1990404162);o=md5_ff(o,n,m,l,p[g+12],7,1804603682);l=md5_ff(l,o,n,m,p[g+13],12,-40341101);m=md5_ff(m,l,o,n,p[g+14],17,-1502002290);n=md5_ff(n,m,l,o,p[g+15],22,1236535329);o=md5_gg(o,n,m,l,p[g+1],5,-165796510);l=md5_gg(l,o,n,m,p[g+6],9,-1069501632);m=md5_gg(m,l,o,n,p[g+11],14,643717713);n=md5_gg(n,m,l,o,p[g+0],20,-373897302);o=md5_gg(o,n,m,l,p[g+5],5,-701558691);l=md5_gg(l,o,n,m,p[g+10],9,38016083);m=md5_gg(m,l,o,n,p[g+15],14,-660478335);n=md5_gg(n,m,l,o,p[g+4],20,-405537848);o=md5_gg(o,n,m,l,p[g+9],5,568446438);l=md5_gg(l,o,n,m,p[g+14],9,-1019803690);m=md5_gg(m,l,o,n,p[g+3],14,-187363961);n=md5_gg(n,m,l,o,p[g+8],20,1163531501);o=md5_gg(o,n,m,l,p[g+13],5,-1444681467);l=md5_gg(l,o,n,m,p[g+2],9,-51403784);m=md5_gg(m,l,o,n,p[g+7],14,1735328473);n=md5_gg(n,m,l,o,p[g+12],20,-1926607734);o=md5_hh(o,n,m,l,p[g+5],4,-378558);l=md5_hh(l,o,n,m,p[g+8],11,-2022574463);m=md5_hh(m,l,o,n,p[g+11],16,1839030562);n=md5_hh(n,m,l,o,p[g+14],23,-35309556);o=md5_hh(o,n,m,l,p[g+1],4,-1530992060);l=md5_hh(l,o,n,m,p[g+4],11,1272893353);m=md5_hh(m,l,o,n,p[g+7],16,-155497632);n=md5_hh(n,m,l,o,p[g+10],23,-1094730640);o=md5_hh(o,n,m,l,p[g+13],4,681279174);l=md5_hh(l,o,n,m,p[g+0],11,-358537222);m=md5_hh(m,l,o,n,p[g+3],16,-722521979);n=md5_hh(n,m,l,o,p[g+6],23,76029189);o=md5_hh(o,n,m,l,p[g+9],4,-640364487);l=md5_hh(l,o,n,m,p[g+12],11,-421815835);m=md5_hh(m,l,o,n,p[g+15],16,530742520);n=md5_hh(n,m,l,o,p[g+2],23,-995338651);o=md5_ii(o,n,m,l,p[g+0],6,-198630844);l=md5_ii(l,o,n,m,p[g+7],10,1126891415);m=md5_ii(m,l,o,n,p[g+14],15,-1416354905);n=md5_ii(n,m,l,o,p[g+5],21,-57434055);o=md5_ii(o,n,m,l,p[g+12],6,1700485571);l=md5_ii(l,o,n,m,p[g+3],10,-1894986606);m=md5_ii(m,l,o,n,p[g+10],15,-1051523);n=md5_ii(n,m,l,o,p[g+1],21,-2054922799);o=md5_ii(o,n,m,l,p[g+8],6,1873313359);l=md5_ii(l,o,n,m,p[g+15],10,-30611744);m=md5_ii(m,l,o,n,p[g+6],15,-1560198380);n=md5_ii(n,m,l,o,p[g+13],21,1309151649);o=md5_ii(o,n,m,l,p[g+4],6,-145523070);l=md5_ii(l,o,n,m,p[g+11],10,-1120210379);m=md5_ii(m,l,o,n,p[g+2],15,718787259);n=md5_ii(n,m,l,o,p[g+9],21,-343485551);o=safe_add(o,j);n=safe_add(n,h);m=safe_add(m,f);l=safe_add(l,e)}return Array(o,n,m,l)}function md5_cmn(h,e,d,c,g,f){return safe_add(bit_rol(safe_add(safe_add(e,h),safe_add(c,f)),g),d)}function md5_ff(g,f,k,j,e,i,h){return md5_cmn((f&k)|((~f)&j),g,f,e,i,h)}function md5_gg(g,f,k,j,e,i,h){return md5_cmn((f&j)|(k&(~j)),g,f,e,i,h)}function md5_hh(g,f,k,j,e,i,h){return md5_cmn(f^k^j,g,f,e,i,h)}function md5_ii(g,f,k,j,e,i,h){return md5_cmn(k^(f|(~j)),g,f,e,i,h)}function safe_add(a,d){var c=(a&65535)+(d&65535);var b=(a>>16)+(d>>16)+(c>>16);return(b<<16)|(c&65535)}function bit_rol(a,b){return(a<<b)|(a>>>(32-b))};

/*
 * obsługa formularzy
 */

function ajaxSubmitForm(formid,dest_div)
{
	//$('#'+dest_div).html( "Proszę czekać ..." ) ;
	$('#'+formid).ajaxSubmit({
		success: function(r){
			$('#'+dest_div).html(r);
		}
	});
	return false;
}

function ajaxForm(formid,dest_div,reload)
{
	$('#'+formid).ajaxForm(function(r){
		if(reload==true)
		{
			$('#'+dest_div).html(r);
		}
	});
}


function ajaxSubmitFormCustomActionOnClk(formid,dest_div,action,reload)
{
	$('#'+formid).attr('action',action); 
	ajaxForm(formid,dest_div,reload);
}


function submitForm(formid)
{
	$('form#'+formid).submit();
}

function passwordCode(formid,passwd1)
{
	var p1=$('#' + passwd1).val();
	if (p1!='') {
		p1 = hex_md5(p1);
		$('#'+passwd1).val(p1);
	}
	return p1;
}

function loginForm(formid,pass,dest_div){
	var p1=passwordCode(formid,pass);
	$('#'+formid).ajaxSubmit({
		success: function(r){
			$('#'+dest_div).html(r);
		}
	});
	return false;
}

function resetPasswd(formid,pass1,pass2,dest_div){
	var p1=passwordCode(formid,pass1);
	var p2=passwordCode(formid,pass2);
	$('#'+formid).ajaxSubmit({
		success: function(r){
			$('#'+dest_div).html(r);
		}
	});
	return false;
}

function orderRegisterForm(formid,pass){
	var p1=passwordCode(formid,pass);
	//$('#'+formid).Submit();
	return true;
}

function registerCode(formid,passwd1,passwd2)
{
	var p1=passwordCode(formid,passwd1);
	var p2=passwordCode(formid,passwd2);
}

function registerForm(formid,passwd1,passwd2,dest_div){
	registerCode(formid, passwd1, passwd2);
	$('#'+formid).ajaxSubmit({
		success: function(r){
			$('#'+dest_div).html(r);
		}
	});
	return false;
} 

function changePasswordForm(formid,passwd1,passwd2,passwd3,dest_div){
	
	passwordCode(formid,passwd1);
	passwordCode(formid,passwd2);
	passwordCode(formid,passwd3);
	
	$('#'+formid).ajaxSubmit({
		success: function(r){
			$('#'+dest_div).html(r);
		}
	});
	
	return false;
}

/**
 * Zaznacza odznacza 
 * tylko jeden checkbox
 * o nazwie name
 * @param name
 * @return
 */
function set_checkbox(name)
{
	if($("input[name="+name+"]").attr('checked'))
	{
		$("input[name="+name+"]").attr('checked',false);
	}else{
		$("input[name="+name+"]").attr('checked',true);
	}
	return false;
}

/**
 * Zmiana checkboxa o nazwie
 * source_name zaznacza / odznacza
 * grupę checkbox-ów
 * zaczynajączych się na dest_name
 * @param source_name
 * @param dest_name
 * @return
 */
function set_checkbox_group(source_name,dest_name)
{
	if($("input[name="+source_name+"]").attr('checked'))
	{
		status=true;
	}else{
		status=false;
	}
	
	$("input[name^="+dest_name+"]").attr('checked', status);

	return false;
}

function create_url(type,div,url)
{
	$('#'+div).load('http://localhost/efotol/dictionary/vabox/afpage_url/news/1',function(){
		$('#acurl').val($('#url').val());
		ajaxSubmitForm('afcurl',div);
	});
}

function load_ajax(url,div)
{
	$('#'+div).load(url);
	return false;
}


/**
 *  Inicjuje i skaluje scroll_panel
 */
function set_scroll_panel()
{
	$('.table_panel').children('.scroll').css('height',$('body').height()-$('#top').height()-$('#bottom').height()-200);
	$('.table_panel').children('.scroll').jScrollPane();
}

/**
 * Dopasowuje wysokość scroll_panel i main do okna
 * @return
 */
function resize_scroll_panel()
{
	$('#main').css('height',$('body').height()-$('#top').height()-$('#bottom').height()-3);
	$('.table_panel').children('.scroll').css('height',$('body').height()-$('#top').height()-$('#bottom').height()-200);
}

/*
 * Funkcje pomocnicze 
 */

/**
 * Prompt 
 * if ok then ajax load
 */

function show_confirm_load(info,div,url)
{
	var answer = confirm(info);
	if (answer)
	{
		$('#'+div).load(url);
	}
	return false;
}

function show_confirm(info,url)
{
	var answer = confirm(info);
	if (answer)
	{
		window.location = url;
	}
	return false;
}


/**
 * Popup Dialog z ładowanie zawartości poprzez Ajax-a
 */
function dialog(dialog_id,width,height,url)
{
	$('#'+dialog_id).load(url);
	$( "#"+dialog_id ).dialog({
		resizable: true,
		height:height,
		width:width,
		modal: true
	});

}
/**
 * Popu Dialog ze wskazaniem klasy css nagłówka
 */
function dialog_custom(dialog,title1,class_name,width1,height1,url)
{
	$(dialog).dialog({
		modal: true,
		title: title1,
		resizable:false,
		width:width1,
		height:height1,
		open: function () {
            $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass(class_name);
            $(dialog).load(url);
        }
		
	});
}

/**
 * Popu Dialog ze wskazaniem klasy css nagłówka i buttonem ok
 */
function dialog_custom_with_ok(dialog,title1,class_name,width1,height1,url)
{
	$(dialog).dialog({
		modal: true,
		title: title1,
		resizable:false,
		width:width1,
		height:height1,
		buttons: {
			Ok: function() {
				$( this ).dialog( "close" );
			}
		},
		open: function () {
            $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass(class_name);
            $(dialog).load(url);
        }
		
	});
}

/**
 * JQUERY Full Calendar
 */
function jcalendar(calendar_div_id,load_div_id,start_y,start_m,start_d,start_h,source_url,add_url,edit_url,resize_url,drop_url)
{
	var date = new Date();
	var d = date.getDate();
	var m = date.getMonth();
	var y = date.getFullYear();
	
	var calendar_height=$("body").height()-$("#top").height()-$("#bottom").height()-140;
	var calendar=$("#"+calendar_div_id).fullCalendar({
							theme: true,
							header: {
								left: "prev,next today",
								center: "title",
								right: "month,agendaWeek,agendaDay,basicWeek,basicDay"
							},
							firstDay:1,
							slotMinutes:15,
							axisFormat:"H(:mm):00",
							year: start_y,
							month: (start_m-1),
							date:  start_d,
							defaultEventMinutes:60,
							firstHour:  start_h,
							height:calendar_height,
							timeFormat:{
							    agenda: "H:mm{ - H:mm}", 
							    "": "H:mm{ - H:mm}"          
							},
							buttonText:{
							    today:    "Dzisiaj",
							    month:    "Miesiąc",
							    week:     "Tydzień",
							    day:      "Dzień"
							},	
							monthNames:[
								"Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"
							],									
							monthNamesShort:[
								"Sty","Lut","Mar","Kwi","Maj","Cze","Lip","Sie","Wrz","Paź","Lis","Gru"
							],
							dayNames:[
								"Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"
							],
							dayNamesShort:[
								"Nd","Pon","Wt","Śr","Czw","Pt","Sb"
							],
							allDayText:"cały<br/>dzień",
							defaultView:"agendaWeek",
							selectable: true,
							selectHelper: true,
							select: function(start, end, allDay) {
								jn_event=new Object();
								jn_event.start=start;
								jn_event.end=end;
								jn_event.allDay=allDay;
								var dataString = $.toJSON(jn_event);
								$("#"+load_div_id).load(add_url+"?jn="+dataString); 
							},
							
							eventResize: function(event){
								var eventString = $.toJSON(event);
								$.post(resize_url, {
														jnevent: eventString
													},
													 function(res){
													    var obj = $.evalJSON(res);
													    if(obj.info != "true")
													    	alert(obj.info);
													  });
							},
							eventDrop:function(event, dayDelta, minuteDelta, allDay){
								 var eventString = $.toJSON(event);
								 var dayDeltaString = $.toJSON(dayDelta);
								 var minuteDeltaString = $.toJSON(minuteDelta);
								 var allDayString = $.toJSON(allDay);

								$.post(drop_url, {
														jnevent: eventString,
														jnday: dayDeltaString,
														jnminute: minuteDeltaString,
														jnallday: allDayString
													},
													 function(res){
													    var obj = $.evalJSON(res);
													    if(obj.info != "true")
													    	alert(obj.info);
													  });
							},
							eventClick:function(event){
								$("#"+load_div_id).load(edit_url+"/"+event.id);
							},
							editable: true,
							eventSources:[ 
								source_url
								
							]	
						});

}


/*
 * Interakcje toogle itp. 
 */

function toogleSlow(block)
{
	$("#"+block).toggle('slow');
  return false; 
};
  
function toogleSlide(block)
{
	$("#"+block).slideToggle('fast');
  return false; 
};




/*
 * Do sprawdzenia czy potrzebne
 */

function ajaxHref(tag,css_class,url,dest_div)
{
	var linki = document.getElementsByTagName(tag);
	for(i=0; i < linki.length; i++)
	{
		if (linki[i].className==css_class)
		{
			return linki[i].onclick =function(){$(dest_div).load(url+'?'+Math.random()); return false;};
		}
	}
}

