$(document).ready(function() {

	$(".flash").show();
	setTimeout(function(){
		$(".flash").hide();
	},3000);
	
	// enable resizable boxes
	$(function() {
		$(".html_edit").resizable();
	});

});

/*
 *	extendable selects for IE
 */
$(document).ready(function() {
	$('select:has(option):not(.dawca)').each(function() {
		if($.browser.msie) {
			var formelement = $(this).parents("form");
			if(!formelement.hasClass("ui-selectmenu-disabled")) {
				var width = $(this).css("width");
				var widthInt = 300;
				if(width != "auto") {
					if(parseInt(width) < 100) {
						widthInt = parseInt(width);
					} else {
						widthInt = parseInt(width) + 200;
					}
				}
				$(this).selectmenu({width: width, menuWidth: widthInt, maxHeight: 250});
			}
		}
	});
	
	$("#topmenu_menu_admin .admin").attr("href","#");
	$("#topmenu_menu_admin .admin").mouseenter(function(){
		var menudiv = $("<div></div>");
		menudiv.addClass("newadmin_menudiv");
		
		var olda = $("<a></a>");
		olda.attr("href","/admin");
		olda.html("Stary admin");
		olda.appendTo(menudiv);
		
		var newa = $("<a></a>");
		newa.attr("href","/admin/users/search");
		newa.html("Nowy admin");
		newa.appendTo(menudiv);
		
		menudiv.appendTo($(this));
	}).mouseleave(function(){
		$(this).find(".newadmin_menudiv").remove();
	});
	
});

/**
 * breadcrumb positioning
 */
/*
$(document).ready(function() {
	var activeTab = $("#topmenu_menu li.active");
	var pos = activeTab.position();
	if(pos) {
		$("#breadcrumb").css("margin-left",pos.left+"px");
	}
});
*/



/**
 * Tabs support
 * example usage: users/edit.tpl
 */
$(document).ready(function() {
	$(".tabs_area ul.tabs li:not(.topmenu)").each(function(index) {
		$(this).click(function() {
			$(".tabs_area ul.tabs li:not(.topmenu)").removeClass("active");
			$(this).addClass("active");
			$(".tabs_area div.tab_body").fadeOut('fast');
			$(".tabs_area div.tab_body:eq("+index+")").fadeIn('fast');
			window.location.href = setUrlAnchor(window.location.href, 'tab_'+index);
		});
	});
	
	$(".tabs_area div.tab_body").hide();
	var anchor = getUrlAnchor(window.location.href);
	if(anchor.match(/^tab_(\d+)$/)) {
		var tab = anchor.replace("tab_", "");
		$(".tabs_area div.tab_body:eq("+tab+")").show();
		$(".tabs_area ul.tabs li:eq("+tab+"):not(.topmenu)").addClass("active");
	}
	else {
		$(".tabs_area div.tab_body:eq(0)").show();
		$(".tabs_area ul.tabs li:first-child:not(.topmenu)").addClass("active");
	}
	
	$("#editResultsCancel").click(function() {
		if(confirm("Czy aby na pewno porzucić zmiany?")) {
			window.location.replace("/users/classes");
		}
	});

	$("#drawChartsCancel").click(function() {
		window.location.replace("/users/classes");
	});
	
	$("#orderCancel").click(function() {
		window.location.replace("/shoppings/lsform");
	});
	
	$("#registerCancel").click(function() {
		window.location.replace("/");
	});
	
	$("#editClassCancel").click(function() {
		if(confirm("Czy aby na pewno porzucić zmiany?")) {
			window.location.replace("/");
		}
	});
	
	$("#lsformCancel").click(function() {
		window.location.replace("/");
	});
	
	
	$("#test_lock_date_id").datepicker({dateFormat: 'yy-mm-dd'});
	$("#test_open_date_id").datepicker({dateFormat: 'yy-mm-dd'});
	$(".datefield").datepicker({dateFormat: 'yy-mm-dd'});
	$('.datetimefield').datetime({
						userLang	: 'pl',
						americanMode: false
					});
});



function getUrlAnchor(url) {
	var idx = url.lastIndexOf('#');
	if(idx > 0) {
		return url.substr(idx+1);
	}
	return "";
}


function setUrlAnchor(url, anchor) {
	var idx = url.lastIndexOf('#');
	if(idx > 0) {
		return url.substr(0, idx) + "#" + anchor;
	}
	return url + '#' + anchor;
}

function pad(number, length) {

    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }

    return str;

}

/**
 * Toggler for divs
 */
$(document).ready(function() {
	$(".toggle_visibility .toggler span").each(function(index) {
		$(this).click(function() {
			var main = $(this).parent().parent();
			main.find(".body .form").toggle();
			main.find(".body").slideToggle('slow');
			main.find(".toggler span.on, .toggler span.off").toggle();
		});
	});
	
	$(".toggle_visibility .toggler span.on").hide();
	$(".toggle_visibility .body").hide();
	
	$(".charts_form_first input").click(function() {
		if($(this).is(":checked")) {
			$(this).parent().parent().find(".charts_form_second").each(function() {
//				$(this).find("input").removeAttr("disabled");
				$(this).find("input").attr("checked","true");
			});
		} else {
			$(this).parent().parent().find(".charts_form_second").each(function() {
//				$(this).find("input").attr("disabled","true");
				$(this).find("input").removeAttr("checked");
			});
		}
	});
//
//	$(".charts_form_second input:disabled").click(function() {
//		$(this).parent().parent().find(".charts_form_second input").removeAttr("disabled");
//	});
//
	$(".charts_form_second input").click(function() {
		
		if($(this).parent().parent().find(".charts_form_second input:checked").length == 0) {
			$(this).parent().parent().parent().find(".charts_form_first input").removeAttr("checked");
//			$(this).parent().parent().find(".charts_form_second input").attr("disabled","true");
		} else {
			$(this).parent().parent().parent().find(".charts_form_first input").attr("checked","true");
//			$(this).parent().parent().find(".charts_form_second input").removeAttr("disabled");
		}
	});
	
	
	$("#unusedClassesToggler").toggle(
		function () {
			$('#editSchoolClass').slideToggle('slow');
			window.location.href = setUrlAnchor(window.location.href, 'add_class');
		},
		function () {
			$('#editSchoolClass').slideToggle('slow');
			window.location.href = setUrlAnchor(window.location.href, '');
		}
	);
	
	
	
	$("#editSchoolClassCancel").click(function() {
		var content = '<div class="flash error"><div id="flashText"><strong>Dane klasy nie zostały zapisane.</strong></div></div>';
		$("#flash_container").html(content);
		$(".flash").show();
		setTimeout(function(){
			$(".flash").hide();
		},3000);

		history.back();
		$("#editSchoolClass").slideUp('slow');
	})
	
});



/**
 * JSON fields validator
 */
function validateForm(form, url) {
	var t = this;

	t.form = form;
	t.url = url;
	
	t.validate = function(e) {
		var r = e.target.id.substring(e.target.id.indexOf('_')+1, e.target.id.lastIndexOf('_'));
		var parent = $(e.target).closest(".row > .field").parent();
		
		if(r.match(/[a-z_]+_\d+/)) {
			r = r.substring(0, r.lastIndexOf('_'));
			r = r.substr(0, 1).toUpperCase() + r.substr(1);
		}
		
		if(parent.find(".field_status").length == 0) {
			parent.append("<div class='field_status'></div>");
		}
		field = parent.find(".field_status");
		
		$.post(t.url, t.form.serialize(), function(json) {
			if(typeof json.data.errors[r] != 'undefined') {
				
				string = json.data.errors[r].join(', ');
				field.removeClass("valid_msg").addClass("error_msg").html(string);
				parent.find("input").addClass("error");
			}
			else {
				field.removeClass("error_msg").addClass("valid_msg").html("OK");
				parent.find("input").removeClass("error");
			}
		}, 'json');
	};
	
	t.form.find("input[type='text'], input[type='password']").not(".no_validation").keyup(t.validate);
	t.form.find("input[type='checkbox'], select").not(".no_validation").change(t.validate);
	
}




// function ajaxDelete(url, warning, success) {
// 	var t = this;
// 	
// 	t.url = url;
// 	t.warning = warning;
// 	t.success
// 
// }

/* shoppings - tabbler */
$(document).ready(function() {
	$(".payed_version_tabbler div").click(function() {
		$(".payed_version_tabbler div").removeClass("active");
		$(".payed_content").removeClass("active");
		$(this).removeClass("active");
		var content_id = $(this).attr("id")+"c";
		$(this).addClass("active");
		$("#"+content_id).addClass("active");
	});
});



/* shoppings */
function resumSummary() {
	var sum = 0.0;
	$(".pricing").each(function() {
		var p = parseFloat($(this).text());
		var c = parseInt($(this).parent().parent().find("input").val());
		$(this).parent().parent().find(".summary").text((p*c).toFixed(2));
		
		sum += p*c;
	});
	$(".summaryall").text(sum.toFixed(2));	
}

$(document).ready(function() {
	resumSummary();
	
	$(".lsform.button_add").click(function() {
		var parent = $(this).parent();
		var product_name = parent.find(".input_product_name").val();
		var product_price = parent.find(".input_product_price").val();
		var product_id = parent.find(".input_product_id").val();
		var product_quantity = parent.find(".input_product_quantity").val();
		
		if(!$(this).hasClass("in_cart")) {
			$(this).addClass("in_cart");
			$(this).html("AKTUALIZUJ");
			
			var row_html = 	"<tr relid='"+product_id+"'>"+
								"<td>"+product_name+"</td>"+
								"<td align='center'><span class='pricing'>"+parseFloat(product_price/100).toFixed(2)+"</span> zł</td>"+
								"<td align='center' class='cart_quantity'><input type='hidden' size='2' name=\"product["+product_id+"]\" value='"+product_quantity+"'>"+product_quantity+"</td>"+
								"<td align='center'><span class='summary'></span> zł</td>"+
								"<td align='center'><button type='button' class='cart_deleter'>Usuń</button></td>"+
							"</tr>";
			$("#cart_table_body").append(row_html);
		}
		else {
			var row = $("#cart_table_body").find("tr[relid="+product_id+"]");
			row.find(".cart_quantity").html("<input type='hidden' size='2' name=\"product["+product_id+"]\" value='"+product_quantity+"'>"+product_quantity);
			resumSummary();
		}
		
		
		resumSummary();
	});
	
	$(".cart_deleter").live("click",function() {
		var row = $(this).parent().parent();
		var product_id = row.attr("relid");
		row.remove();
		
		$(".lsform.product[relid="+product_id+"]").find(".button_add").removeClass("in_cart").html("DO KOSZYKA");
		resumSummary();
	});
	
	$("#orderdetailstoggler input[name='order_type']").click(function() {
		if(parseInt($(this).val()) == 1) {
			$(".ordertype2list").css("display","none");
			$(".ordertype2list input").attr("disabled","disabled");
			$(".ordertype1list").css("display","block");
			$(".ordertype1list input").removeAttr("disabled");
		} else {
			$(".ordertype1list").css("display","none");
			$(".ordertype1list input").attr("disabled","disabled");
			$(".ordertype2list").css("display","block");
			$(".ordertype2list input").removeAttr("disabled");
		}
	})
});










$(document).ready( function() {
	$(".announcement .close_button").click( function() {
		
		$ann = $(this).closest(".announcement");
		$ann.hide('slow');
		
		$.ajax({
			type: 'POST',
			url: "/announcements/markRead",
			async: false,
			data: {'id': $ann.attr('announcement_id')}});
	});

	$("#announcement_hider").click(function() {
		
	});
});




function enableTinyMCE(id) {
	if($("#"+id+"_but_t").is('.selected')) {
		return;
	}
	
	var $w = $('#'+id).parent(); // ui-wrapper
// 	if($w.width() < 611) {
// 		$w.css('width', 611);
// 	}
// 	if($w.height() < 230) {
// 		$w.css('height', 230);
// 	}
	
	$("#"+id+"_but_t").addClass('selected');
	$("#"+id+"_but_s").removeClass('selected');
	
// 	$('#'+id).parent().find(".ui-resizable-handle").hide();
	// $w.resizable( "option", "alsoResize", '#'+id+'_tbl' );
	
	tinyMCE.init({
		mode : "exact",
		elements: id,
		width : $w.width(),
		height: $w.height(),
		theme_advanced_resizing : false,

		theme : "advanced",
		plugins : "safari,spellchecker,pagebreak,style,layer,table,advhr,advimage,advlink,emotions,iespell,inlinepopups,preview,media,searchreplace,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
		theme_advanced_buttons1 : "code,preview,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,|,forecolor,backcolor",
		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_statusbar_location : "bottom",
		content_css : "/css/application.css",
		template_external_list_url : "js/template_list.js",
		external_link_list_url : "js/link_list.js",
		external_image_list_url : "js/image_list.js",
		media_external_list_url : "js/media_list.js",
		template_replace_values : {}
	});
}



function disableTinyMCE(id) {
	if($("#"+id+"_but_s").is('.selected')) {
		return;
	}
	
	$("#"+id+"_but_s").addClass('selected');
	$("#"+id+"_but_t").removeClass('selected');
	
	if(confirm('Edytor HTML może zniszczyć formatowanie pola, jeśli pole zawiera kod HTML utworzony poza edytorem.\n\nCzy nadpisać zawartość pola treścią z edytora?')) {
		$('#'+id).val($('#'+id+'_ifr').contents().find('body').html());
	}
	
	var p = $('#'+id+'_parent');
	
	$('#'+id).show()
		.parent().find(".ui-resizable-handle").show();
	
	$('#'+id+'_parent').remove();
}
