var Rater = Class.create ({
	initialize: function(options){
		this.id = options.id;
		this.rating = options.rating;
		this.num_ratings = options.num_ratings;
		this.feedback_box = options.feedback_box;
		this.object_name = options.object_name;

		this.locked = false;
		if ($('rater')) {
		this.reset();
		}
	},

	mouseOver: function(num){
		if (!this.locked){
			if (num == 0)
				this.feedback_box.innerHTML = '1 pont';
			else if (num == 1)
				this.feedback_box.innerHTML = '2 pont';
			else if (num == 2)
				this.feedback_box.innerHTML = '3 pont';
			else if (num == 3)
				this.feedback_box.innerHTML = '4 pont';
			else if (num == 4)
				this.feedback_box.innerHTML = '5 pont';

			for (var i = 0; i <= num; i++)
				$(this.object_name + '_rating_star_' + i).className = 'star star_full';
			for (var i = num + 1; i < 5; i++)
				$(this.object_name + '_rating_star_' + i).className = 'star star_empty';
		}
	},

	rate: function(num){
		//ide jön a hidden érték beállítása

		if (!this.locked){
			this.locked = true;
            $('pontszam').value=num;

		}
	},

	reset: function(){
		if (!this.locked){
			for(var i = 0; i < 5; i++){
				if (this.rating <= i + 0.1)
					$(this.object_name + '_rating_star_' + i).className = 'star star_empty';
				else if (this.rating <= i + 0.5)
					$(this.object_name + '_rating_star_' + i).className = 'star star_half';
				else
					$(this.object_name + '_rating_star_' + i).className = 'star star_full';
			}
			this.feedback_box.innerHTML = this.num_ratings + ' szavazat ('+this.rating+')';
		}
	}
});

function utf8_decode ( str_data ) {

    var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;

    str_data += '';

    while ( i < str_data.length ) {
        c1 = str_data.charCodeAt(i);
        if (c1 < 128) {
            tmp_arr[ac++] = String.fromCharCode(c1);
            i++;
        } else if ((c1 > 191) && (c1 < 224)) {
            c2 = str_data.charCodeAt(i+1);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
            i += 2;
        } else {
            c2 = str_data.charCodeAt(i+1);
            c3 = str_data.charCodeAt(i+2);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }

    return tmp_arr.join('');
}

function utf8_encode ( argString ) {

    var string = (argString+'').replace(/\r\n/g, "\n").replace(/\r/g, "\n");

    var utftext = "";
    var start, end;
    var stringl = 0;

    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;

        if (c1 < 128) {
            end++;
        } else if((c1 > 127) && (c1 < 2048)) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }

    if (end > start) {
        utftext += string.substring(start, string.length);
    }

    return utftext;
}

function ablak(page,get, w, h) {
        var ypos=(screen.width-w)/2;
        options=',top=5, left='+ypos;
        win_edit = window.open(page+'.php'+get, '','width='+w+',height='+h+',scrollbars=yes,resizable=1,status=1'+options);
        win_edit.focus();
}

function leiras (idk) {
if (idk!='') {
location.href='product.php?'+idk;
}
}

function getParameter ( name ) {
                name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
                var regexS = "[\\?&]"+name+"=([^&#]*)";
                var regex = new RegExp( regexS );
                var results = regex.exec( window.location.href );
                if( results == null )
                    return "";
                else
                    return results[1];
                }

String.prototype.trim= function () {
        return (this.replace(/^\s+/,'').replace(/\s+$/,''));
        }

function selTable ( table ) {
        Event.observe(table,'click',this.MouseClick.bind(this));
        };

selTable.prototype = {
        elozo: null,
        MouseClick: function (event) {
                var element=Event.findElement(event,'li');
                if (element) {
                        if (this.elozo) {
                                Element.removeClassName(this.elozo,'selected');
                                }
                        Element.addClassName(element,'selected');
                        this.elozo=element;
                        }
                }
        };

function selFile (name) {
        Event.observe(name,'click',this.MouseClick.bind(this));
        };

selFile.prototype = {
        getParameter: function ( name ) {
                name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
                var regexS = "[\\?&]"+name+"=([^&#]*)";
                var regex = new RegExp( regexS );
                var results = regex.exec( window.location.href );
                if( results == null )
                    return "";
                else
                    return results[1];
                },
        MouseClick: function (event) {
                var element=Event.findElement(event,'a');
                var regexS = "[\\?.]"+"([^&#]*)";
                var regex = new RegExp( regexS );
                if (element.innerHTML) {
                var content=element.innerHTML.stripTags().trim();

                if ((element.tagName.toLowerCase()=='a')&&(regex.test(content))&&(content!='..')) {
                    var openerId=this.getParameter('id');
                    var depth=this.getParameter('depth');
                    if ((depth.charAt(depth.length-1)!='/')&&(depth.length>0)) depth+='/';
                    depth+=content;
                    opener.$(openerId).value=depth;
                    window.close();
                    }
                   }
                }
        };

/* SORBARENDEZENDŐ TÁBLÁZAT OBJ */
function sortTable () {
	   var oThis=this;
	   oThis.adTable = $('adTable');
       var adRows = oThis.adTable.getElementsByTagName("li",oThis.adTable);
       oThis.divs=new Array();
                  for (var i = 2; i < adRows.length; i++)
                         {
                         oThis.divs[i-2] = adRows[i];
                         }
       oThis.inicSort();
  	   oThis.oldorder= Sortable.serialize('adTable',{name: 'oldorder'});
  	   };


sortTable.prototype = {
	inicSort: function () {
		var oThis=this;
 		Sortable.create('adTable',{ghosting:false,elements:oThis.divs,
                       onChange:function(){},
                       onUpdate:oThis.UpdateTable.bind(this)});
		},
	UpdateTable: function () {
		oThis=this;
 	    var params= this.oldorder + "&" + Sortable.serialize(
                       'adTable',
                       {name: 'neworder'}
                       )+"&mode=swap&tablename="+$('tableName').value;

        new Ajax.Request(
                       '../getcontent.php',
                       {
                       method: 'get',
                       parameters: params,
                       onComplete: function (response) {
                       	    //csere miatt beállítjuk újra a kezdő sorrendet
    						oThis.oldorder= Sortable.serialize('adTable',{name: 'oldorder'});

    						//
                     	    var neworder=JSON.parse(response.responseText);
							for (var i=0; i<neworder.length;i++) {
								$('pk'+(i+1)).value=neworder[i];
								}
							$(clicked).onclick();
                           	}
                       }
        );
		}
	};

/* Form_entity AJAX call */
function Form_entity () {

			var oThis=this;
			//van e táblázat
			oThis.adTable=false;
			if ($('adTable'))
				oThis.adTable=true;
			//végrehajtott műveletek száma
			oThis.db=0;
			oThis.form='myform';
       	    oThis.inputs=oThis.getInputs(oThis.form);
            if ($('allopinions')||($('tableName').value=="kapcsolat")) {
            oThis.inicForm();
            }

            Event.observe('myform-ok','click',function (event) {oThis.mouseClick(event);});
			}

Form_entity.prototype = {
		inicForm: function () {
			      var oThis=this;
        	      for (var i=0;i<oThis.inputs.length;i++) {
			        	if (($(oThis.inputs[i]).type!='hidden') && ($(oThis.inputs[i]).type!='button') && ($(oThis.inputs[i]).type!='submit'))
				     	    $(oThis.inputs[i]).value='';
				     	}
			},

        getInputs: function (form) {
				  var element=$(form);
				  var allinputs = element.getElementsByTagName("input");
				  var textareas = element.getElementsByTagName("textarea");
				  var elements=new Array();
				  var j=0;
        	      for (var i=0;i<allinputs.length;i++) {
			        	elements.push(allinputs[i].id);
				     	}

				  for (var i=0;i<textareas.length;i++) {
				     	elements.push(textareas[i].id);
						}
				  return elements;
        	},

        checkForm: function () {
        	      var oThis=this;
        	      var l=false;
                  for (var i=0;i<oThis.inputs.length;i++) {
                  	  if ($(oThis.inputs[i])!='adId') {
                  	  	if ($(oThis.inputs[i]).value=="") {
                  	  		if ($("err_"+oThis.inputs[i])) {
	                  	  		$("err_"+oThis.inputs[i]).innerHTML="hiányos mező!";
	                  	  		l=true;
	                  	  	}
                  	  	} else if ($("err_"+oThis.inputs[i])) {
                  	  		$("err_"+oThis.inputs[i]).innerHTML="";
                  	  	}
                  	  }
			      }
			      return l;
        	},

		createQuery: function() {
		    var goodarray=new Array();
		    for (var i=0;i<this.inputs.length;i++) {
		    	   if ($(this.inputs[i]).type!='button') {
				     var name=encodeURIComponent($(this.inputs[i]).name);
				     var value=encodeURIComponent($(this.inputs[i]).value);
		    	     goodarray.push(name+'='+value);
		    	   }
		    	}

		    var query=goodarray.join('&');
            return query;
			},

		mouseClick: function (event) {
			var oThis=this;

			if ($('allopinions')||($('tableName').value=="kapcsolat")) {

            if (!oThis.checkForm()) {
	            oThis.query=oThis.createQuery();

				$('loading').style.display="block";
			    //muszáj saját magát hívni mert így lesz konzisztens és elszeparált
			    //egységbe zárás megtartása; így külön állítgatható mind
				new Ajax.Request(window.location.href, {
							method: "post",
							parameters: oThis.query,
							onComplete: function(response)  {
											oThis.inicForm();
											$('loading').style.display="none";

											oThis.db++;
											$('message').innerHTML="<img src='images/_siteimages/s_okay.png' align='absmiddle'> "+oThis.db+". elem rögzítésre került";

											if ($('allopinions')) {
											$('fTable').innerHTML="<div id='message'><img src='images/_siteimages/s_okay.png' align='absmiddle'> Véleményét rögzítettük!</div>";
												oThis.updateOpinions();
												}
											if ($('tableName').value=="kapcsolat") {
												$('fTable').innerHTML="<div id='message'><img src='../../images/_siteimages/s_okay.png' align='absmiddle'> Üzenetét megkaptuk és rövidesen jelentkezünk!</div>";
												}
							}
						});
			}
			}
			},

		//nem általánosított (származtatással lehetne bővíteni és eseteket definiálni rá)
		updateOpinions: function () {
			var oThis=this;
			new Ajax.Request('getAllOpinions.php', {
						method: "post",
						parameters: oThis.query,
						onComplete: function(response)  {
									$('allopinions').innerHTML=response.responseText;
						}
					});
			}
     	}


/* BETÖLTÉSKOR */
Event.observe (
      window,
      'load',
      function () {
      	      if ($('categories')) {
      	      	  function kategoriak() {
      	          for (i=0;i<$('categories').childNodes.length;i++) {
      	      	  if ($('categories').childNodes[i].tagName=="DIV") {
      	      	    	new Effect.Appear($('categories').childNodes[i],{duration:1,from:0,to:1});
      	      	    	}
      	      	  }
      	      	  }
      	      	  setTimeout(kategoriak,1000);
      	      	}
              if ($('myform')) {
              	new Form_entity();
              	}
			  if ($('adTable')) {
                  new selTable('adTable');
                  new sortTable();

              }
              if ($('my_selector'))
                  new selFile('my_selector');
              if ($('csvmettol')) {
                      $('csvmettol').className='class="TCMask[####-##-##,____-__-__]"';
                      $('csvmeddig').className='class="TCMask[####-##-##,____-__-__]"';
                      Typecast.Init();
              }
              var par=getParameter('cat');
              if (par!="") {
              var element='cat'+par;
              var el=$(element);
              while ((el=el.parentNode)&&(el.tagName!='DIV')) {
                      if (el.tagName=='UL') el.style.display='block';
                      }
              }


              }
              );


/* Egykét helyen alkalmazott div eltűntetés miatt */
function showhidetrigger(thismenu,thismenu2,thismenu3)
{
var oMenu = document.getElementById(thismenu);
var oMenu2 = document.getElementById(thismenu2);
var oMenu3 = document.getElementById(thismenu3);


                 if (oMenu.style.display != "none"){
                 oMenu.style.display = "none";
                 oMenu2.style.display = "none";
                 oMenu3.style.display = "block";
                }
                else {
                 oMenu.style.display = "block";
                 oMenu2.style.display = "block";
                 oMenu3.style.display = "none";
                }
}
