/*
 * JavaScript interface to the SB network.
 * class SB - common SB methods
 *
 * Requirements: jQuery library 1.4.2 and above
 * Copyright (C) 2010 Tomas Hnilica.   All Rights Reserved.
 */
 
var SB = {}
 
SB.common = function() {
}

SB.common.prototype.dateInputs = function(id) {
  var ret = "<div class='sb-date-inputs'>";
  
  ret += "";
  /*todo*/
  ret += "</div>";
  return ret;
}

SB.common.prototype.errorMessage = function(msg) {

	var ret = '	<div class="ui-widget">';
	ret += '			<div class="ui-state-error ui-corner-all" style="padding: 10px;">';
	ret += '<p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: 5px;"></span> ';
	ret +=  msg
	ret += '	</div>';
	ret += '	</div>';
	return ret;				   

}

SB.common.prototype.anketa_vote = function(aid) {
  var d = $('#' + aid);
  var aid = d.attr('aid');
  var vid = d.find("input[@name='anketa-option']:checked").val();
  if (!vid) {
     thAlert("Musíte vybrat jednu z možností.");
     return;
  }
	var params = {}
	params["ws"] = "anketaVote";
	params["aid"] = aid;
	params["vid"] = vid;
	params["display"] = d.attr('display');
	var context = this;
		$.get("/ws/", params, function(data){
			    thAlert(data.msg, "Hlasování v anketě");
			    if (data.code!="") {
			    	d.replaceWith(data.code);
			    }
	  	}, "json");
 
}

SB.common.prototype.anketa_results = function(aid) {
 var d = $('#' + aid);
  var aid = d.attr('aid');
	var params = {}
	params["ws"] = "anketaCode";
	params["aid"] = aid;
	params["display"] = d.attr('display');
	params["results"] = true;
	var context = this;
		$.get("/ws/", params, function(data){
			    	d.replaceWith(data);
	  	});
 }
 
SB.common.prototype.moreNewBlogs = function() {
  var offset = $('#new-blogs .blog-post').size();
	var params = {}
	params["ws"] = "moreNewBlogs";
	params["offset"] = offset;
	var context = this;
		$.get("/ws/", params, function(data){
			    if (data == "") {
			     $('#blogs-show-more').hide();
			  } else {
					   $('#new-blogs').append(data);	
				}
	  	});
};

SB.common.prototype.moreNewUsers = function() {
  var offset = $('#new-users .stob-user').size();
	var params = {}
	params["ws"] = "moreNewUsers";
	params["offset"] = offset;
	var context = this;
		$.get("/ws/", params, function(data){
			    if (data == "") {
			     $('#users-new-show-more').hide();
			  } else {
					   $('#new-users').append(data);	
				}
	  	});
};

SB.common.prototype.switchLike = function(likeid) {
	if (!SBuser) return false;
	SBuser.switchLike(likeid, function(ret){
		$('#like-' + likeid).replaceWith(ret);
	});
};

SB.common.prototype.switchJoinEvent = function(eventid) {
	if (!SBuser) return false;
		
	SBuser.switchJoinEvent(eventid, function(ret){
		/*$('#event-' + eventid).replaceWith(ret);*/
		/*need to reload the page (or optionally only joined users list )*/
		document.location.reload();
	});
};

SB.common.prototype.moreEventJoins = function() {
  var offset = $('#event-users a').size();
	var params = {}
	params["ws"] = "moreEventJoins";
	params["id"] = $('#event').attr('eid');
	params["offset"] = offset;
	var context = this;
		$.get("/ws/", params, function(data){
			    if (data == "") {
			     $('#event-users-show-more').hide();
			  } else {
					 $('#event-users').append(data);	
				}
	  	});
};



/**
display next interested product in the right column
*/
SB.common.prototype.nextProduct = function(offset) {
	var newCode = "";
	$.get("/ws/", {ws:"userRightProduct", o: offset}, function(data){
			newCode = data;
			$("#promo-product-user").fadeOut("slow",function(){
			   $("#promo-product-user").html(newCode).fadeIn("slow");
			});
			
	});	

	return;
}


/*
 * ESHOP related methods.
 */
 
/**
Reload top window basket part.
*/ 
SB.common.prototype.reloadBasket = function() {
	var newCode = "";
	$.get("/ws/", {ws:"topBasket"}, function(data){
			newCode = data;
			$("#headerBoxBasket").fadeOut("slow",function(){
			   $("#headerBoxBasket").html(newCode).fadeIn("slow");
			});
			
	});	

	return;
	
}

SB.common.prototype.addProductAction = function(id, pcs, variants) {
	if (!id) return false;
	var params = {}
	params["ws"] = "basket-add";
	params["id"] = id;
	params["pcs"] = pcs;
	params["variants"] = variants;
	var context = this;
		$.get("/ws/", params, function(data){
			   if (data == "") {
			   	data = "Zboží bylo vloženo do košíku.";
			  }
			  thAlert(data, "Nákupní košík");
			  context.reloadBasket();
	  	});
}
	
SB.common.prototype.addProduct = function(id, pcs, variants) {
	var context = this;
	if (!pcs) {
		thPrompt( "Vložit kusů: ", "1", "Nákupní košík", function(r,v){
			if (!r) return false;
			pcs = v;
			context.addProductAction(id, pcs, variants);
		}, {compact:true});
	} else this.addProductAction(id, pcs, variants);
}

SB.common.prototype.remProduct = function(id) {
	if (!id) return false;
	var params = {}
	params["ws"] = "basket-remove";
	params["id"] = id;
	var context = this;
		$.get("/ws/", params, function(data){
			   if (data == "") {
			   	data = "Zboží bylo odebráno z košíku.";
			  }
			  context.reloadBasket();
	  	});
}

SB.common.prototype.changeProduct = function(id, pcs) {
	if (!id) return false;

	var params = {}
	params["ws"] = "basket-change";
	params["id"] = id;
	params["pcs"] = pcs;
	var context = this;
		$.get("/ws/", params, function(data){
			   if (data == "") {
			   	data = "Počet kusů v košíku byl změněn.";
			  }
			  context.reloadBasket();
	  	});
}

/**
Send product query form. Separate product object in future.
*/
SB.common.prototype.queryProduct = function(pid) {
 	var code = '<form method="POST" id="product-query">';
 	code += "<input type='hidden' name='PRODp_id' value='"+pid+"' />";
  code += "<table style='text=align: left;'>";
 
  if (SBuser.uid == '') {
 	 code += "<tr><td align='right'>jméno:</td><td><input type='text' name='PRODname' id='PRODname' class='required' /></td><td></td></tr>";
 	 code += "<tr><td align='right'>telefon:</td><td><input type='text' name='PRODphone' id='PRODphone' class='required' /></td><td></td></tr>";
 	 code += "<tr><td align='right'>email:</td><td><input type='text' name='PRODemail' id='PRODemail' class='required email' /></td><td></td></tr>";
  }
  code += "<tr><td align='right'>žádám o:</td><td>";
  code += "<table>";
  code += "<tr><td><input type='radio' name='PRODform' value='kontakt' show='contact-options'></td><td align='left'>kontaktování<div id='contact-options' class='extra-options'><input type='radio' name='PRODform2' value='email'>e-mailem<br><input type='radio' name='PRODform2' value='telefonem'>telefonicky</div></td></tr>";	
  code += "<tr><td><input type='radio' name='PRODform' value='navsteva' show='visit-options'></td><td align='left'>osobní návštěvu<div id='visit-options' class='extra-options'><input type='radio' name='PRODform3' value='provozovna'>v provozovně<br><input type='radio' name='PRODform3' value='u_klienta'>u klienta</div></td></tr>";	
  code += "<tr><td><input type='radio' name='PRODform' value='poslat_materialy' show=''></td><td align='left'>zaslání propagačních materiálů</td></tr>";	
  code += "</table>";
  code += "</td><td></td></tr>";
  code += "<tr><td align='right'>dotaz:</td><td><textarea name='PRODtext' id='PRODtext' ></textarea></td><td></td></tr>";
  code += "</table>";
  code += "</form>";
  
  $('#fx-product-query').remove();
	jQuery("<div />", { id:"fx-product-query", html: code, "title": "Dotaz na produkt" }).dialog({
					buttons: {
						"Zrušit": function() { 
							$(this).dialog("close");
							$('#fx-product-query').remove();
						},

						"Odeslat dotaz": function() { 
							var valid = $("#product-query").valid();
							if (!valid) return false;
							var params = {}
							$('#product-query').find("input, textarea, select").each(function() { 
									params[ this.name ] = this.value; 
							 }); 
							 params['PRODform'] = $("input[name='PRODform']:checked").val(); 
							 if (params['PRODform'] == 'kontakt') params['PRODform'] += "-" +  $("input[name='PRODform2']:checked").val(); 
							 if (params['PRODform'] == 'navsteva') params['PRODform'] += "-" + $("input[name='PRODform3']:checked").val(); 
							var context = this;
							$('.ui-dialog-buttonpane button').attr('disabled', 'disabled' ).addClass( 'ui-state-disabled' );
							$.post("/ws/?ws=queryProduct", params, function(data){
									thAlert(data.msg, "Dotaz na produkt", function(){
											$(context).dialog("close");
											$('#fx-product-query').remove();
									});
					   }, 'json');
					 				
			
						}
					},
					height: "auto",
					width: 450,
					maxWidth: 900,
					maxHeight: 700,
					minWidth: 300,
					minHeight: 150,
					modal: true
				});
		$('.extra-options').hide();
		$('input[name=PRODform]').click(function(){
			$('.extra-options').hide();
				var show = $(this).attr('show');
				if (show != "") $('#' + show).show();
			});
}
