function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function wipeInput(objInput)
{
	objInput.select();
}

function setBidWindow(intAuctId, strAction)
{
	if (intAuctId && strAction)
	{
		if (strAction == "buyout")
			jQuery('#bidfields').html("<div class=\"pop_simpletext_title\">Ajánlat kivásárlása!</div>" +
			"<input type=\"button\" name=\"\" value=\"Licit indítása\" class=\"button6_inp pop_lif_submit\" onclick=\"sendBidRequest();\" />" +
			"<div class=\"clear\"></div>");
		
		jQuery("#input_auction_id").attr("value", intAuctId);
		jQuery("#auctaction").attr("value", strAction);
		jQuery('#popup_licit').css('display','block');
	}
}

function doRefresh(refresh)
{
	if (refresh === true){window.location.reload(true);}
	else if (refresh){window.location = refresh;}
}

function setAlertStyle(style)
{
	switch (style)
	{
		case "OK":
			jQuery("#alertfooter").css('background', 'url(images/alertbox_bottom_bg_green.jpg) repeat-x scroll 0 0 transparent');
			jQuery("#alerticon").css('background', 'url(images/alertbox_icon_ok.png) transparent');
			jQuery("#alertbox").css('border', '2px solid #5CA600');
			break;
		default:
			jQuery("#alertfooter").css('background', 'url(images/alertbox_bottom_bg.jpg) repeat-x scroll 0 0 transparent');
			jQuery("#alerticon").css('background', 'url(images/alertbox_icon.png) transparent');
			jQuery("#alertbox").css('border', '2px solid #FFA200');
			
	}
}

function setAlertWindow(message, refresh)
{
	jQuery('#alertbody').html(message);
	jQuery('#alertbox').fadeIn('fast');
	jQuery('#alertbutton').click(function(){
		jQuery('#alertbox').fadeOut('fast', function(){
			doRefresh(refresh);
		});
	});
}

function setWatched(intAuctId)
{
	if (intAuctId)
	{
		var url = "ajaxSetWatched.php";
		var params = "auction_id="+intAuctId;
		
		jQuery.post(url, params, function(retval){
			setAlertStyle(retval);
			if (retval == "OK")
			{
				setAlertWindow("Az aukciót a megfigyelt aukciók listádra tettem!", true);
			}
			else
				setAlertWindow(retval, false);
		});
	}
}

function registerUser(frm)
{
	var objForm = null;
	if ((objForm = document.getElementById(frm)) != null)
	{
		var TheCollector = new frmDataCollector(frm);
		var params = TheCollector.frmDataToParams();
		var url = "registeruser.php";
		
		jQuery.post(url, params, function(retval){
			setAlertStyle(retval);
			if (retval == "OK")
			{
				setAlertWindow("Köszönöm regisztrációdat! Küldtem egy aktivációs e-mailt a megadott e-mail címedre!", 'index.php');
			}
			else
				setAlertWindow(retval, false);
		});
	}
}

function resetPass(frm)
{
	var objForm = null;
	if ((objForm = document.getElementById(frm)) != null)
	{
		var TheCollector = new frmDataCollector(frm);
		var params = TheCollector.frmDataToParams();
		var url = "resetpassword.php";
		
		jQuery.post(url, params, function(retval){
			setAlertStyle(retval);
			if (retval == "OK")
			{
				setAlertWindow("Elküldtük új jelszavadat a megadott e-mail címre.", "index.php");
			}
			else
				setAlertWindow(retval, false);
		});
	}
}

function saveUserProfile(frm)
{
	var objForm = null;
	if ((objForm = document.getElementById(frm)) != null)
	{
		var TheCollector = new frmDataCollector(frm);
		var params = TheCollector.frmDataToParams();
		var url = "ajaxSaveProfile.php";
		
		jQuery.post(url, params, function(retval){
			setAlertStyle(retval);
			if (retval == "OK")
			{
				setAlertWindow("Profilodat sikeresen elmentettem!", true);
			}
			else
				setAlertWindow(retval, false);
		});
	}
}

function savePartnerProfile(frm)
{
	var objForm = null;
	if ((objForm = document.getElementById(frm)) != null)
	{
		var TheCollector = new frmDataCollector(frm);
		var params = TheCollector.frmDataToParams();
		var url = "ajaxSavePartner.php";
		
		jQuery.post(url, params, function(retval){
			setAlertStyle(retval);
			if (retval == "OK")
			{
				setAlertWindow("Adatmódosításaidat sikeresen elmentettem!", true);
			}
			else
				setAlertWindow(retval, false);
		});
	}
}

function saveAffiliatesPartnerProfile(frm)
{
	var objForm = null;
	if ((objForm = document.getElementById(frm)) != null)
	{
		var TheCollector = new frmDataCollector(frm);
		var params = TheCollector.frmDataToParams();
		var url = "ajaxSaveAffiliatesPartner.php";
		
		jQuery.post(url, params, function(retval){
			setAlertStyle(retval);
			if (retval == "OK")
			{
				setAlertWindow("Adatmódosításaidat sikeresen elmentettem!", true);
			}
			else
				setAlertWindow(retval, false);
		});
	}
}

function pollFormAction(action) {
	var frm= "pollForm";
	var url= "ajaxPollFormAction.php";
	
	var objForm= null;
	if ((objForm= document.getElementById(frm)) == null)
		return false;
	
	switch (action) {
		case 'getanswers':
			jQuery.get(url, {'action': action}, function(data) {
				jQuery("#poll_answers").empty().removeClass("results");
				
				jQuery.each(data, function(k, answer) {
					jQuery("#poll_answers")
						.append(jQuery("<input/>").addClass("radiobtn_inp").attr({
							'type': "radio",
							'name': "answerID",
							'id': "answerID_"+answer.ID,
							'value': answer.ID
						}))
						.append(jQuery("<label/>").text(answer.answer).attr('for', "answerID_"+answer.ID))
						.append(jQuery("<br/>"))
					;
				});
				
			}, 'json');
			
			
			jQuery("#poll_buttons1").css('display', "block");
			jQuery("#poll_buttons2").css('display', "none");
			break;
		case 'savevote':
			var TheCollector= new frmDataCollector(frm);
			var params= TheCollector.frmDataToParams();
			
			jQuery.post(url, params, function(retval) {
				if (retval=="OK")
					pollFormAction('getresults_noback');
				else
					setAlertWindow(retval, false);
			});
			break;
		case 'getresults':
		case 'getresults_noback':
			jQuery.get(url, {'action': action}, function(data) {
				jQuery("#poll_answers").empty().addClass("results");
					console.log(data);
				
				jQuery.each(data, function(k, answer) {
					thisclass= "";
					if (answer.answered)
						thisclass= "answered";
					jQuery("#poll_answers")
						.append(jQuery("<p/>").text(answer.answer).addClass(thisclass))
						.append(jQuery("<div/>").css({'width': answer.width}).addClass(thisclass).text(answer.percent))
					;
				});
				
			}, 'json');
			
			if (action.substring(11)=="noback")
				jQuery("#poll_buttons1, #poll_buttons2").remove();
			else {
				jQuery("#poll_buttons1").css('display', "none");
				jQuery("#poll_buttons2").css('display', "block");
			}
			break;
	}
}

function newsletterFormAction(frm, action)
{
	var objForm = document.getElementById(frm);
	
	if (objForm !== null)
	{
		objForm.elements["action"].value = action;
		
		var TheCollector = new frmDataCollector(frm);
		var params = TheCollector.frmDataToParams();
		var url = "newsletterreg.php";
		
		
		jQuery.post(url, params, function(retval){
			setAlertWindow(retval, false);
		});
	}
}

function sendBidRequest(action)
{
	var objForm = document.getElementById('bidform');
	var objCollector = null;
	var params = "";
	var url = "ajaxBid.php";
	
	if (objForm != null)
	{		
		objCollector = new frmDataCollector('bidform');
		params = objCollector.frmDataToParams();
		
		jQuery.post(url, params, function(retval){
			
			var arrRetval = retval.split('#');
			setAlertStyle(arrRetval[0]);
			if (arrRetval[0] == "OK")
				setAlertWindow("Licitedet rögzítettem!", true);
			else if (arrRetval[0] == "userdata")
				document.getElementById("popup_licit").innerHTML = arrRetval[1];
			else
				setAlertWindow(retval, false);
		});
	}
}

function sendBuyoutRequest(intAuctionId)
{
	var params = "auction_id="+intAuctionId;
	var utl = "ajax";
}

function setAuctionStatus(status, auctionId)
{
	var url = "ajaxSetStatus.php",
		params = "auctions_status="+status+"&auction_id="+auctionId;
	
	jQuery.post(url, params, function(retval){
		setAlertStyle(retval);
		if (retval == "OK")
			setAlertWindow("Elmentettem a státuszmódosítást.", true);
		else
			setAlertWindow(retval, false);
	});
}

function ajaxGetRating(intProdId)
{
	var url = "ajaxGetRating.php";
	var params = "offer_id="+intProdId;
	
	jQuery.post(url, params, function(retval){
		var arrRetvals = retval.split("#");
		
		if (arrRetvals[0] == "OK")
		{
			jQuery("#rating-filler").css("width", arrRetvals[2]+"px");
			jQuery("#rating-numbers").html(arrRetvals[1]);
		}
	});
}

function ajaxRate(intRating, intProdId)
{
	var url = "ajaxRate.php";
	var params = "rating="+intRating+"&offer_id="+intProdId;
	
	jQuery.post(url, params, function(retval){
		if (retval == "OK")
			ajaxGetRating(intProdId);
	});
}

function sendContact()
{
	var objForm = document.getElementById('contactform');
	var objCollector = null;
	var params = "";
	var url = "ajaxCaptureContact.php";
	
	if (objForm != null)
	{		
		objCollector = new frmDataCollector('contactform');
		params = objCollector.frmDataToParams();
		
		jQuery.post(url, params, function(retval){
			setAlertStyle(retval);
			if (retval == "OK")
				setAlertWindow("Köszönöm a kapcsolatfelvételt!<br />Most átirányítalak a nyitó oldalra.", "index.php");
			else
				setAlertWindow(retval, false);
		});
	}
}

function frmDataCollector (frm)
{
	this.frm = document.getElementById(frm);
}

frmDataCollector.prototype =
{
	encodeNameAndValue: function(name, value)
	{
		param = name+'='+trim(value);
		return param;
	},
	
	frmDataToParams: function()
	{
		var params = "";
		var form = this.frm;
		
		for (var i = 0; i < form.elements.length; i++)
		{
			var field = form.elements[i];
			var stopped = false;
			
			switch (field.type) {
				case "button":
				case "submit":
				case "reset":
					stopped = true;
				break;
				case "checkbox":
				case "radio":
					if (!field.checked) {
						stopped = true;
						break;
					}
				case "text":
				case "hidden":
				case "password":
					params += this.encodeNameAndValue(field.name, field.value);
					break;
				default:
					switch(field.tagName.toLowerCase()) {
						case "select":
							params += this.encodeNameAndValue(field.name, field.options[field.selectedIndex].value);
							break;
						default:
							params += this.encodeNameAndValue(field.name, field.value);
					}
			}
			if (i < form.elements.length-2 && !stopped) {
				params += "&";
			}
		}
		return params;
	}
}

function SimpleFormChecker(frm, bolFlagCallback, strFeedbackDivId, strSendBtnId)
{
	this.oThis = this;
	this.objForm = document.forms[frm];
	this.mandatory = new Array();
	this.FlagCallback = bolFlagCallback;
	this.strFeedbackDiv = strFeedbackDivId;
	this.sendBtn = strSendBtnId;
	
	if (this.objForm != null)
	{
		this.theCollector = new frmDataCollector(this.objForm);
		
		for (i = 0; i < this.objForm.elements.length; i++)
		{
			if (this.objForm.elements[i].className.match(/mandatory/))
				this.mandatory.push(this.objForm.elements[i].name);
		}
	}
}

SimpleFormChecker.prototype = {
	
	inArray: function(needle, haystack, argStrict)
	{
		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;
	},
	
	emailCheck: function(strValue)
	{
		if (!strValue.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/))
			return false;
			
		return true;
	},
	
	setInputFlag: function(strElementId, bolFlag)
	{
		var objFlagContainer = document.getElementById(strElementId),
			flagImage = (bolFlag ? "icon_reg_ok.png" : "icon_reg_error.png"),
			strMsg = (bolFlag ? "OK!" : "");
		
		
		if (objFlagContainer !== null)
		{
			objFlagContainer.innerHTML = '<img class="feedbackimg" src="images/'+flagImage+'" title="'+strMsg+'" />';
			objFlagContainer.style.display = 'block';
		}
	},
	
	checkField: function(objField)
	{
		if (this.inArray(objField.name, this.mandatory, false))
		{
			if (objField.type == "checkbox")
			{
				if (!objField.checked)
					return false;
				else
					return true;
			}
			else
			{
				switch (objField.name)
				{
					case 'email':
						if (!this.emailCheck(objField.value))
						{
							if (this.FlagCallback){this.setInputFlag(this.objForm.elements[i].name, false);}
							return false;
						}
						else
						{
							if (this.FlagCallback){this.setInputFlag(this.objForm.elements[i].name, true);}
							return true;
						}
						break;
					case 'jelszom':
						if (trim(objField.value) == '' || (objField.value != this.objForm.elements['jelszo'].value && trim(objField.value) != ''))
						{
							if (this.FlagCallback){this.setInputFlag(this.objForm.elements[i].name, false);}
							return false;
						}
						else
						{
							if (this.FlagCallback){this.setInputFlag(this.objForm.elements[i].name, true);}
							return true;
						}
					default:
						if (trim(objField.value) == '')
						{
							if (this.FlagCallback){this.setInputFlag(this.objForm.elements[i].name, false);}
							return false;
						}
						else
						{
							if (this.FlagCallback){this.setInputFlag(this.objForm.elements[i].name, true);}
							return true;
						}
				}
			}
		}
		return true;
	},
	
	checkForm: function()
	{
		var retval = true;
		for (i = 0; i < this.objForm.elements.length; i++)
		{
			if (!this.checkField(this.objForm.elements[i]) && retval)
				retval = false;
		}
		if (retval && this.sendBtn)
			jQuery('#'+this.sendBtn).fadeIn('fast');
		else if (this.sendBtn)
		{
			if (jQuery('#'+this.sendBtn).attr('display') != 'none')
				jQuery('#'+this.sendBtn).fadeOut('fast');
		}
			
		return retval;
	}
	
}

function AjaxMailer(frm, bolFlagCallback, strFeedbackDivId, strSendBtnId)
{
	this.oThis = this;
	this.objForm = document.forms[frm];
	this.mandatory = new Array();
	this.FlagCallback = bolFlagCallback;
	this.strFeedbackDiv = strFeedbackDivId;
	this.sendBtn = strSendBtnId;
	
	if (this.objForm != null)
	{
		this.theCollector = new frmDataCollector(this.objForm);
		
		for (i = 0; i < this.objForm.elements.length; i++)
		{
			if (this.objForm.elements[i].className.match(/mandatory/))
				this.mandatory.push(this.objForm.elements[i].name);
		}
	}
}

AjaxMailer.prototype = {
	
	inArray: function(needle, haystack, argStrict)
	{
		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;
	},
	
	emailCheck: function(strValue)
	{
		if (!strValue.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/))
			return false;
			
		return true;
	},
	
	setInputFlag: function(strElementId, bolFlag)
	{
		var objFlagContainer = document.getElementById(strElementId),
			flagImage = (bolFlag ? "icon_reg_ok.png" : "icon_reg_error.png"),
			strMsg = (bolFlag ? "OK!" : "");
		
		
		if (objFlagContainer !== null)
		{
			objFlagContainer.innerHTML = '<img class="feedbackimg" src="images/'+flagImage+'" title="'+strMsg+'" />';
			objFlagContainer.style.display = 'block';
		}
	},
	
	checkField: function(objField)
	{
		if (this.inArray(objField.name, this.mandatory, false))
		{
			switch (objField.name)
			{
				case 'email':
					if (!this.emailCheck(objField.value))
					{
						if (this.FlagCallback){this.setInputFlag(this.objForm.elements[i].name, false);}
						return false;
					}
					else
					{
						if (this.FlagCallback){this.setInputFlag(this.objForm.elements[i].name, true);}
						return true;
					}
					break;
				default:
					if (objField.value == '')
					{
						if (this.FlagCallback){this.setInputFlag(this.objForm.elements[i].name, false);}
						return false;
					}
					else
					{
						if (this.FlagCallback){this.setInputFlag(this.objForm.elements[i].name, true);}
						return true;
					}
			}
		}
		return true;
	},
	
	checkForm: function()
	{
		var retval = true;
		for (i = 0; i < this.objForm.elements.length; i++)
		{
			if (!this.checkField(this.objForm.elements[i]) && retval)
				retval = false;
		}
		if (retval)
			jQuery('#'+this.sendBtn).fadeIn('fast');
		else
		{
			if (jQuery('#'+this.sendBtn).attr('display') != 'none')
				jQuery('#'+this.sendBtn).fadeOut('fast');
		}
			
		return retval;
	},
	
	hideMessagBox: function()
	{
		jQuery("#"+this.strFeedbackDiv).fadeOut();
		if (jQuery('#'+this.sendBtn).attr('display') != 'none')
			jQuery('#'+this.sendBtn).fadeOut('fast');
	},
	
	execRequest: function()
	{
		var url = 'ajaxMailer.php',
			params = this.theCollector.frmDataToParams(),
			oThis = this;
		
		jQuery("#"+this.strFeedbackDiv).fadeIn('fast');
		
		if (this.checkForm())
		{
			jQuery.post(url, params, function(retval)
								{
									if (oThis.strFeedbackDiv)
									{
										jQuery("#messagebox_"+oThis.strFeedbackDiv).html(retval);
									}
								});
		}
	}
	
}

function validateEmail(mail){
	var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	return emailPattern.test(mail);
}

function checkOpinionForm(){
    var randomNum = Math.round(1000 + Math.random()*(9999 - 1000));

    // here you can define the mandatory fields
    var fieldIds = new Array();
    fieldIds[0] = "Név";
    fieldIds[1] = "Email";
    fieldIds[2] = "Hozzászólás";
    //fieldIds[2] = "spamcode";

    var valid=true;
    var text = "";

    if(!testCaptcha(0,"spamcode"))
    {
            text = text +"<h2>Rosszul adtad meg az ellenőrző kódot!</h2>";
            valid = false;
    }
    
    for(i = 0; i < document.forms['opinionForm'].elements.length; i++)
    {
            var el = document.forms['opinionForm'].elements[i];
            for(var b=0; b<fieldIds.length; b++) {
                    if (fieldIds[b] == el.id) {
                            if (el.value == "") {
                                    text = text +"<h2> Kérem töltse ki a " + el.id + " mezőt!</h2>";
                                    el.focus();
                                    valid=false;
                            }
                            if(el.id == "Email") {
                                    if(!validateEmail(el.value))
                                    {
                                            text = text +"<h2>Kérlek, ellenőrizd az email címet!</h2>";
                                            el.focus();
                                            valid=false;
                                    }
                            }
                    }
            }
    }
    
    if(valid == false){
        setAlertStyle('style');
        setAlertWindow(text, false);
        return false;
    }
    else
    	return true;
}

function getAffiliateDetails() {
	if ($("#affiliate_selecter option:selected").text().length==0) {
		$("#affiliate_details").css('display', "none");
	} else {
		$("#affiliate_details").css('display', "block");
		
		$("#affiliate_id").text($("#affiliate_selecter").val());
		$("#affiliate_link").val("http://www.happytravel.hu?affiliate="+$("#affiliate_selecter").val());
        $("#affiliate_share_percentage").text($("#affiliate_selecter option:selected").text().split("#")[1]);
	}
}

