var config = {
	evalScripts : true,
	method : "POST"
}
function show_calendar(str_target, str_datetime) {
	var arr_months = ["Stycze&#324;", "Luty", "Marzec", "Kwiecie&#324;", "Maj", "Czerwiec",
		"Lipiec", "Sierpie&#324;", "Wrzesie&#324;", "Pa&#378;dziernik", "Listopad", "Grudzie&#324;"];
	var week_days = ["ND", "PN", "WT", "&#346;R", "CZ", "PT", "SO"];
	var n_weekstart = 0; // day week starts from (normally 0 or 1)

	var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt(str_datetime));
	var dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);
	var dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth()+1);
	var dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
	var dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);
	
	// html generation (feel free to tune it for your particular application)
	// print calendar header
	var str_buffer = new String (
		"<html>\n"+
		"<head>\n"+
		"	<title>Kalendarz</title>\n"+
		"</head>\n"+
		"<body bgcolor=\"White\">\n"+
		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
		"<tr><td bgcolor=\"#4682B4\">\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
		"<tr>\n	<td bgcolor=\"#4682B4\"><a href=\"javascript:window.opener.show_calendar('"+
		str_target+"', '"+ dt2dtstr(dt_prev_month)+"'+document.cal.time.value);\">"+
		"<img src=\"media/img/prev.gif\" width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"previous month\"></a></td>\n"+
		"	<td bgcolor=\"#4682B4\" colspan=\"5\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
		"	<td bgcolor=\"#4682B4\" align=\"right\"><a href=\"javascript:window.opener.show_calendar('"
		+str_target+"', '"+dt2dtstr(dt_next_month)+"'+document.cal.time.value);\">"+
		"<img src=\"media/img/next.gif\" width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"next month\"></a></td>\n</tr>\n"
	);

	var dt_current_day = new Date(dt_firstday);
	// print weekdays titles
	str_buffer += "<tr>\n";
	for (var n=0; n<7; n++)
		str_buffer += "	<td bgcolor=\"#87CEFA\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"+
		week_days[(n_weekstart+n)%7]+"</font></td>\n";
	// print calendar table
	str_buffer += "</tr>\n";
	while (dt_current_day.getMonth() == dt_datetime.getMonth() ||
		dt_current_day.getMonth() == dt_firstday.getMonth()) {
		// print row heder
		str_buffer += "<tr>\n";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
				if (dt_current_day.getDate() == dt_datetime.getDate() &&
					dt_current_day.getMonth() == dt_datetime.getMonth())
					// print current date
					str_buffer += "	<td bgcolor=\"#FFB6C1\" align=\"right\">";
				else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\">";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"white\" align=\"right\">";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
					// print days of current month
					str_buffer += "<a href=\"javascript:window.opener."+str_target+
					".value='"+dt2dtstr(dt_current_day)+"'; window.opener.set_seller_start(window.opener.document.seller_opt.start); window.close();\">"+
					"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
				else 
					// print days of other months
					str_buffer += "<a href=\"javascript:window.opener."+str_target+
					".value='"+dt2dtstr(dt_current_day)+"'+document.cal.time.value; window.opener.set_seller_start(window.opener.document.seller_opt.start); window.close();\">"+
					"<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
				str_buffer += dt_current_day.getDate()+"</font></a></td>\n";
				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	// print calendar footer
	str_buffer +=
		"<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#87CEFA\">"+
		"<font color=\"White\" face=\"tahoma, verdana\" size=\"2\">"+
		"<input type=\"hidden\" name=\"time\" value=\""+dt2tmstr(dt_datetime)+
		"\" size=\"8\" maxlength=\"8\"></font></td></tr>\n</form>\n" +
		"</table>\n" +
		"</tr>\n</td>\n</table>\n" +
		"</body>\n" +
		"</html>\n";

	var vWinCal = window.open("", "Calendar", 
		"width=200,height=250,status=no,resizable=yes,top=200,left=200");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
	
}
// datetime parsing and formatting routimes. modify them if you wish other datetime format
function str2dt (str_datetime) {
	var re_date = /^(\d+)\-(\d+)\-(\d+)$/;
	if (!re_date.exec(str_datetime))
		return "error";
	return (new Date (RegExp.$1, RegExp.$2-1, RegExp.$3, RegExp.$4, RegExp.$5, RegExp.$6));
}
function dt2dtstr (dt_datetime) {
	
	
	var month=new Array(12)
	month[0]="01"
	month[1]="02"
	month[2]="03"
	month[3]="04"
	month[4]="05"
	month[5]="06"
	month[6]="07"
	month[7]="08"
	month[8]="09"
	month[9]="10"
	month[10]="11"
	month[11]="12"
	
	var days=new Array(32)
	days[0]="00"
	days[1]="01"
	days[2]="02"
	days[3]="03"
	days[4]="04"
	days[5]="05"
	days[6]="06"
	days[7]="07"
	days[8]="08"
	days[9]="09"
	days[10]="10"
	days[11]="11"
	days[12]="12"
	days[13]="13"
	days[14]="14"
	days[15]="15"
	days[16]="16"
	days[17]="17"
	days[18]="18"
	days[19]="19"
	days[20]="20"
	days[21]="21"
	days[22]="22"
	days[23]="23"
	days[24]="24"
	days[25]="25"
	days[26]="26"
	days[27]="27"
	days[28]="28"
	days[29]="29"
	days[30]="30"
	days[31]="31"

	return (new String (
			dt_datetime.getFullYear()+"-"+(month[dt_datetime.getMonth()])+"-"+days[dt_datetime.getDate()]+""));
}
function dt2tmstr (dt_datetime) {
	return ("");
}

function set_seller_opt(ten,ten2)
{
	for(var i=1;i<4;i++)
		{
			elem=ten2 + i;
			document.getElementById(elem).value=ten.value;
		}
}
function set_seller_date_end(ten)
{
	if(ten.checked)
	{
		for(var i=1;i<4;i++)
		{
			elem="dni" + i;
			document.getElementById(elem).value=365;
		}
	}
	else
	{
		for(var i=1;i<4;i++)
		{
			elem="dni" + i;
			document.getElementById(elem).value=document.getElementById("end").value;
		}
	}
}

function set_seller_start(ten)
{
	var tmp=str2dt(ten.value);
	if(tmp!="error")
	{
		
		d1 = new Date();
		r= d1.getFullYear();
  		m= d1.getMonth();
  		dz= d1.getDate();
		tmp= ten.value.split("-");
		if(tmp[0]>=r)
		{
			if(tmp[1]>=m)
			 {
			 	 if(tmp[2]>=dz)
			 	 	 test=true;
			 	 else 
			 	 	 test=false;
			 }
			 else
			 	 test=false;
		}
		else 
			test=false;
		
		
		if(test)
		{
			nowadata=ten.value;
		}
		else
		{
			alert("data rozpoczęcia nie może być wcześniejsza niż data dzisiejsza");
			if(m<10)m="0"+m;
			nowadata=r+"-"+m+"-"+dz;
			ten.value=nowadata;
		}
		for(var i=1;i<4;i++)
			{
				elem="start" + i;
				document.getElementById(elem).value=nowadata;
			}
			alert(document.getElementById(elem).value);
	}
	else
		alert("Niewłaściwy format daty (rrrr-mm-dd): "+ ten.value);

}

function categoryPath(cid, appURL) {
	var req = mint.Request().Set(config);
	req.AddParam("cid", cid);
	req.Send(appURL+"getCategory/", "categoryPath");
	
}

function chooseCategory(cid, appURL){
	var req = mint.Request().Set(config);
	req.AddParam("cid", cid);
	document.getElementById("customfield").style.display = 'none';
	document.getElementById("addAdvertSubmit").style.display = 'none';
	req.Send(appURL+"getCategory/", "categoryPath");
}

function checkEmail(email, appURL){
	var userEmail = document.getElementById(email).value;
	var userLogin = document.getElementById("userLogin");
	var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	if (regex.test(userEmail)) {
		if (userEmail.length > 128) {
			userLogin.className = "error";
			alert("Podany adres email jest za długi. Maksymalna długosc to 128 znakow.");
		}
		else {
			userLogin.className = "success";
			var req = mint.Request().Set(config);
			req.AddParam("userEmail", userEmail);
			req.OnSuccess = function(){
				if (this.responseText == "email_null") {
					alert("Podaj adres email");
				}
				else {
					$("formLogin").innerHTML = this.responseText;
					$("buttonSubmit").onclick = function(){
						SendRequest(appURL);
					}
				}
			}
			req.Send(appURL + "authorization,addAdvert/");
		}
	} else {
		userLogin.className = "error";
		alert("Podany adres email jest nieprawidłowy");
	}
}

function SendRequest(appURL) {

	var error = 0;
	var advertTitle = document.getElementById("advertTitle").value;
	var advertTitleValidate = document.getElementById("advertTitle");
	var advertPrice = document.getElementById("advertPrice").value;
	var advertPriceValidate = document.getElementById("advertPrice");
	var advertCity = document.getElementById("advertCity").value;
	var advertCityValidate = document.getElementById("advertCity");
   
	if((advertCity.length<1) || (advertCity.length>128)) {
		advertCityValidate.className = "error";
		error++;
	} else {
		advertCityValidate.className = "success";
	}
	if((advertTitle.length<1) || (advertTitle.length>128)) {
		advertTitleValidate.className = "error";
		error++;
	} else {
		advertTitleValidate.className = "success";
	}
	if((advertPrice.length<1) || (advertPrice.length>128)) {
		advertPriceValidate.className = "error";
		error++;
	} else {
		var regex = /^[0-9\., ]*$/;
		if (regex.test(advertPrice)) {
			advertPriceValidate.className = "success";
		} else {
			advertPriceValidate.className = "error";
			error++;			
		}
	}
	if(document.getElementById("userPassword")) {
		var passwordUser = document.getElementById("userPassword").value;
		var passwordUserValidate = document.getElementById("userPassword");
		if(passwordUser.length<1) {
			passwordUserValidate.className = "error"; 
			error++;
		}
	}
	if (document.getElementById("newUser")) {
		var newUser = document.getElementById("newUser").value;
	}
	if(newUser == "newUser") {
   
		var userPassword = document.getElementById("userPassword").value;
		var userPasswordValidate = document.getElementById("userPassword");
		var userPasswordRepeat = document.getElementById("userPasswordRepeat").value;
		var userPasswordRepeatValidate = document.getElementById("userPasswordRepeat");
		var userName = document.getElementById("userName").value;
		var userNameValidate = document.getElementById("userName");
		var userSurname = document.getElementById("userSurname").value;
		var userSurnameValidate = document.getElementById("userSurname");
		var userPhone = document.getElementById("userPhone").value;
		var userPhoneValidate = document.getElementById("userPhone");
		var userCity = document.getElementById("userCity").value;
		var userCityValidate = document.getElementById("userCity");
		var userStreet = document.getElementById("userStreet").value;
		var userStreetValidate = document.getElementById("userStreet");
      
		if((userPassword.length <= 5) || (userPassword.length > 128)) {
			userPasswordValidate.className = "error";
			error++;
		} else {
			userPasswordValidate.className = "success";
		}
		if((userPasswordRepeat.length <= 5) || (userPasswordRepeat.length > 128)) {
			userPasswordRepeatValidate.className = "error";
			error++;
		} else {
			if (userPassword != userPasswordRepeat) {
				userPasswordRepeatValidate.className = "error";
				error++;				
			} else {
				userPasswordRepeatValidate.className = "success";
			}
		}
		if((userName.length < 1) || (userName.length > 32)) {
			userNameValidate.className = "error";
			error++;
		} else {
			userNameValidate.className = "success";
		}
		if(userSurname.length > 32) {
			userSurnameValidate.className = "error";
			error++;
		} else {
			if(userSurname.length > 0) {
				userSurnameValidate.className = "success";
			}
		}
		if((userPhone.length < 1) || (userPhone.length > 32)) {
			userPhoneValidate.className = "error";
			error++;
		} else {
			userPhoneValidate.className = "success";
		}
		if((userStreet.length <1) || (userStreet.length > 32)) {
			userStreetValidate.className = "error";
			error++;
		} else {
			userStreetValidate.className = "success";
		}
		if((userCity.length <1) || (userCity.length > 32)) {
			userCityValidate.className = "error";
			error++;
		} else {
			userCityValidate.className = "success";
		}
	}
   
	if (error <= 0) {
		var advertTerms = document.getElementById("advertTerms");
		if (advertTerms.checked) {
			var req = mint.Request().Set(config);
			req.OnSuccess = function(){
				if(this.responseText == "error_login") {
					var userPasswordValidate = document.getElementById("userPassword");
					userPasswordValidate.className = "error";
					alert("Podane hasło jest nieprawidłowe.");
				} else {
					if(this.responseText == "add_advert_new_user") {
						window.location.href = appURL+"login/?msg=newUser";
					} else if(this.responseText == "add_advert"){
						
						window.location.href = appURL+"adverts,myprofile/?msg=newAdvert";
					}
					else alert(this.responseText);
				}
			}
			req.SendForm("formAdvert");
		}
		else {
			alert("Proszę zaakceptować regulamin serwisu.");
		}
	} else {
		alert("Proszę poprawnie wypełnić wymagane pola.");
	}

}

function saveAd() {
	document.forms['formAdvert'].submit();
}



function filtr_by() {
	document.forms['filtr_form'].submit();
}

var timer=setInterval("remove_messages()", 5000);

function remove_messages() {
	if(document.getElementById("messages")) {
		if($("messages").style.display = "block") {
			$("messages").style.display = "none";
			
		}
	}
	clearInterval(timer);
}

function confirmLink(theLink, theSqlQuery)
{
   var confirmMsg  = 'Czy na pewno usunąć ';
       if (confirmMsg == '' || typeof(window.opera) != 'undefined') {
           return true;
       }

       var is_confirmed = confirm(confirmMsg + theSqlQuery + '?');
       return is_confirmed;
}

function confirmDelete(theLink, theSqlQuery)
{
       var is_confirmed = confirm(theSqlQuery);
       return is_confirmed;
}