// JavaScript Document

// automatikusan indul szépen, végignézi a tegeket, és ha talál olyat, aminek a rel tagjában van tc
// akkor azokat tömbbe rendezi, majd az 1 es tab class-ához hozzáfűzi az _aktiv részt, és display:none-t csinál a többivel.

function TabControllObj() {
    var anchors = document.getElementsByTagName('a');
	var TabLista = new Array();    
    var ObjLista = new Array();

    var TabID = new Array();
    var TabClass = new Array();
    var TabCsoport =new Array();
    //var TabCounter = new Array();

    function Init() {
        var k=0;
        for (var i=0; i<anchors.length; i++) {

            var anchor = anchors[i];
            var relAttribute = String(anchor.getAttribute('rel'));

            if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('tc-'))) {

                ObjID    = anchor.getAttribute('id');
                ObjLista = relAttribute.split("-");

                if( ObjLista.length > 2 ) {
                    k++;
                    //CsoportName = ObjLista[1];
                    TabID[k] = ObjID;
                    TabClass[k] = anchor.getAttribute('class');
                    TabCsoport[k] = ObjLista[1];
                    //TabCounter = ObjLista[2];
                    //alert(TabLista);
                    if (ObjLista[2] == 1) {
                        anchor.setAttribute('class' , anchor.getAttribute('class')+"_aktiv");
                    } else {
                        anchorTarget = document.getElementById(ObjID+"_div");
                        anchorTarget.style.display = 'none';
                    }
                }
            thisObjName = "tc.ControllNow";

           	ActionName		= "var Tab"+ObjID+" = document.getElementById('"+ObjID+"');";
            ActionCommand	= "Tab"+ObjID+".onclick = "+thisObjName+";";
            JSCommand 		= ActionName+'\n'+ActionCommand;;
            eval(JSCommand);
            }
        }        
    }

    this.InitNow = Init;

    function Controll(Target) {
        //EventemID = Event.element(Target);

        //ie es firefox patch
        if(Target === undefined) {
            //ie
            EventemID = Event.extend(event).target;
            
        }else {
            //ff miatt
            EventemID = Event.element(Target);
            
        }
        

        EventID = EventemID.getAttribute('id');
        EventCsoport = EventemID.getAttribute('rel');
        EventCsoport = EventCsoport.split("-");
        EventCsoport = EventCsoport[1];
        
        //alert("aaaaa "+TabList);
        for (var i=0; i<TabID.length; i++) {
            AktualCsoport = TabCsoport[i];
            AktualID = TabID[i];
            AktualClass = TabClass[i];
            //AktualCounter = TabCounter[i];
            
            if(EventCsoport == AktualCsoport) {
                AktualObj = $(AktualID);
                if(EventID == AktualID) {
                    //alert(AktualClass+"_aktiv -ez az uj az aktivhoz");
                    AktualObj.setAttribute('class' , AktualClass+"_aktiv");
                    anchorTarget = document.getElementById(AktualID+"_div");
                    anchorTarget.style.display = '';
                } else {
                    //alert(AktualClass+" ehhez: "+);
                    AktualObj.setAttribute('class' , AktualClass);
                    anchorTarget = document.getElementById(AktualID+"_div");
                    anchorTarget.style.display = 'none';
                }
                //    thisID = TargetemID;
                //    thisLink = document.getElementById(thisID);
                //    if (AktualTab[0] == number) {
                //        thisLink.setAttribute('class' , AktualTab[1]+"_aktiv");
                //        anchorTarget = document.getElementById(thisID+"_div");
                //        anchorTarget.style.display = '';
                //    } else {
                //        thisLink.setAttribute('class' , AktualTab[1]);
                //        anchorTarget = document.getElementById(thisID+"_div");
                //        anchorTarget.style.display = 'none';
                //    }
                
            }
        }
    }
    this.ControllNow = Controll;
    
}

function initTabControll() {
    tc = new TabControllObj();
    //alert("siker?");
    tc.InitNow();
}

Event.observe(window, 'load', initTabControll , false);

function UserDivHide(ID, TYPE) {

    if(TYPE == "hide") {
        Effect.BlindUp(ID, { duration: 0.2 });
    } else {
        Effect.BlindDown(ID, { duration: 0.2 });
    }

}

//	-----------------------------------------------------------------------------------
//	Menü kontrollhoz --------------------------------------------------------------------
//  -----------------------------------------------------------------------------------

function showSelectBoxes(){
	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
}

function hideSelectBoxes(){
	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "hidden";
	}
}

function AlMenuControll(ID, Type)
	{
	if (Type == "hide")
		{
		document.getElementById(ID).style.visibility='hidden';
		showSelectBoxes();
		
		}
	else
		{
		document.getElementById(ID).style.visibility='visible';
		hideSelectBoxes();
		}
	}


function CSSChange(ID, CSS)
	{
	document.getElementById(ID).className = CSS;
	}

//	-----------------------------------------------------------------------------------
//	Az admin előnézet funkciójához kell --------------------------------------------------------------------
//  -----------------------------------------------------------------------------------

function w2cPrewiew(SE)
	{
	w2cWindow = window.open(BasicURL+"/"+SE, "Elonezet", "");
	w2cWindow.focus();
	}

// --------------------------------------------------------------------------------
// A formokhoz SZERINTEM kell -----------------------------------------------------
// --------------------------------------------------------------------------------

function EventObj(GoID, Event, ExtraID, Action, Command, RespID, OBJName)
{
	var BaseURL		= BasicURL+"/public/";
    var Server      = "public.server.php";
	this.ObjName	= OBJName;
	
	var GoID		= GoID;
	var ExtraID		= ExtraID;
	var Event		= Event;
	var Action		= Action;
	var Server		= Server;
	var	Command		= Command;
	var RespID		= RespID;
	var Name		= this.ObjName;
	
	function Init()
		{
		var ActionName		= "var "+Name+"Form = document.getElementById('"+GoID+"');";
		var ActionCommand	= Name+"Form."+Event+" = "+Name+"."+Action+";";
		var JSCommand 		= ActionName+'\n'+ActionCommand;
        //alert(JSCommand);
		eval(JSCommand);
		}
	this.InitNow = Init;
	
	function Submit()
		{
		if(Acess())
			{
			var myValue = Form.serialize(ExtraID);
			var myPars = 'com='+Command+'&'+myValue;
			var myAnswer = Response;
			var myMethod = 'post';
			var url = BaseURL+Server;
			$(RespID).innerHTML = "Kis türelmet!";
//			alert(myMethod+" ||| "+myPars+" || "+ExtraID);
            var myAjax = new Ajax.Request( url, {
                method: myMethod,
                parameters: myPars,
                onComplete: myAnswer
            });
			return false;
			}
		}
	this.SubmitNow = Submit;

	function PhisicalSubmit()
		{
		if(Acess())
			{
			return true;
			}
		else
			{
			return false;
			}
		}
	this.PhisicalSubmitNow = PhisicalSubmit;

	function PhisicalUserSubmit()
		{
		if(Acess())
			{
            document.getElementById("ellenor"+Command).value=1;
//			azonosito = "ellenor"+Command;
//			document.ExtraID.azonosito.value = 1;
			document.getElementById(ExtraID).submit();
			}
		else
			{
			return false;
			}
		}
	this.PhisicalUserSubmitNow = PhisicalUserSubmit;

	function RefreshQuery()
		{
		var myValue;
        //alert("ANYÁDATMÁR");
		if (ExtraID != '')
				{
				var ValueIDs = ExtraID.split(";");
				for (i = 0; i < ValueIDs.length; i++)
					{
					if (myValue == undefined)
						{
						myValue = $(ValueIDs[i]).value;
						}
					else
						{
						myValue = myValue+"&"+ValueIDs[i]+"="+$(ValueIDs[i]).value;
						}
					var myElement = $(ValueIDs[i]);
					var relAttribute	= String(myElement.getAttribute('rel'));
					var ifNull			= relAttribute.substr(0, 2);
					if (relAttribute != "null")
						{
						if (ifNull == "-1")
							{
							relAttribute = relAttribute.substr(2);
							}
						var adat = $(ValueIDs[i]).value;
						$(ValueIDs[i]).value = ValueModify(adat, relAttribute);
						}
					}
				}
		myConfirm = String($(GoID).getAttribute('rel'));
		myCommandHere = myConfirm.split(":");
		if(myCommandHere[0] == "confirm")
			{
			if (confirm(myCommandHere[1]))
				{
				}
			else
				{
				return false;
				}
			}
		var myPars = 'com='+Command+'&value='+myValue;
		var myAnswer = Response;
		var myMethod = 'post';
		var url = BaseURL+Server;
		//$(RespID).innerHTML = "Kis türelmet!";
        var myAjax = new Ajax.Request( url, {
            method: myMethod,
            parameters: myPars,
            onComplete: myAnswer
        });
		}
	this.RefreshQueryNow = RefreshQuery;
	
	function Commandd(myValue)
		{
		if (ExtraID != '')
			{
			var ValueIDs = ExtraID.split(";");
			
			for (i = 0; i < ValueIDs.length; i++)
				{
				myValue = myValue+"&"+ValueIDs[i]+"="+$(ValueIDs[i]).value;
				}
			}
		if (GoID != '')
			{
			myConfirm = String($(GoID).getAttribute('rel'));
			myCommandHere = myConfirm.split(":");
			if(myCommandHere[0] == "confirm")
				{
				if (confirm(myCommandHere[1]))
					{
					}
				else
					{
					return false;
					}
				}
			}
		var myPars = 'com='+Command+'&value='+myValue;
		var myAnswer = Response;
		var myMethod = 'post';
		var url = BaseURL+Server;
//			$(RespID).innerHTML = "Kis türelmet!";
	
        var myAjax = new Ajax.Request( url, {
            parameters: myPars,
            onComplete: myAnswer
        });
		}
	this.CommandNow = Commandd;

	function Response(originalRequest)
		{
		var answer = originalRequest.responseText;
		var MultiResp1 = answer.indexOf("#[");
		var MultiResp2 = answer.indexOf("]==");
//		alert("Fuck"+MultiResp1+"--"+MultiResp2);
		if ((MultiResp1 > -1) && (MultiResp2 > -1))
			{
			var ResponseArray	= answer.split("#[");
			ResponseArray.shift();
			for (i=0; i<ResponseArray.length; i++)
				{
//				alert(ResponseArray.length+": "+ResponseArray);
				if(ResponseArray[i] != "")
					{
					OneResponse		= ResponseArray[i].split("]==");
					OneRespID		= OneResponse[0];
					OneAnswer		= OneResponse[1];
//					alert(OneRespID+":::::::::::::::::::"+OneAnswer);
					if (OneRespID != "")
						{
						toDefault(OneRespID, OneAnswer);
						}
					}
				}
			}
		else
			{
			toDefault(RespID, answer);
			}
		JSRun(answer);
		}
	this.ResponseNow = Response;
	
	function Acess()
		{
		var myElements = Form.getElements(ExtraID);
		for (var i=0; i<myElements.length; i++)
			{
			var myElement		= myElements[i];
			var relAttribute	= String(myElement.getAttribute('rel'));
			var myURL			= this.document.URL;
			
			Admine				= myURL.indexOf("/public/");
			if(Admine == -1) {
				relAttribute	= String(myElement.getAttribute('id'));
				relAttribute	= relAttribute.split("_");
				
				if(relAttribute[1] == undefined) relAttribute[1] = "";
				
				relAttribute = relAttribute[1];
			}
			
			var ifNull			= relAttribute.substr(0, 2);
			if (ifNull == "-1")
				{
				if ($(myElement).value == "")
					{
					alert("Üres mező!");
					$(myElement).focus();
					return false;
					}
				relAttribute = relAttribute.substr(2);
				}

		//	alert(relAttribute+"-->"+$(myElement).value);
			
			switch (relAttribute)
				{
				case "null":
					break;
				case "":
					break;
				case "allfree":
					break;
				case "freeweb":
					var Minta = "aábcdeéfghiíjklmnoóöőpqrstuúüűxyvwz1234567890 AÁBCDEÉFGHIÍJKLMNOPQRSTOÓÖŐUÚÜŰVWXYZ.,-_|\/()%=+?!&#<>@*;:";
					var Data = $(myElement).value;
					if (Teszt(Data, Minta))
						{
						alert("Csak a magyar ABC betüit, szóközt, számokat, és az alábbi karaktereket: '.,-_|\/()%=+?!&#<>@*;:' tartalmazhat a mező!");
						$(myElement).focus();
						return false;
						}
					break;
				case "number":
					var Minta = "1234567890";
					var Data = $(myElement).value;
					if (Teszt(Data, Minta))
						{
						alert("Csak számot tartalmazhat a mező!");
						$(myElement).focus();
						return false;
						}
					break;
				case "datum":
					var Minta = "./-1234567890";
					var Data = $(myElement).value;
					if (Teszt(Data, Minta))
						{
						alert("Csak számot tartalmazhat a mező!");
						$(myElement).focus();
						return false;
						}
					break;
				case "phone":
					var Minta = "1234567890()-/ ";
					var Data = $(myElement).value;
					if (Teszt(Data, Minta))
						{
						alert("Csak számot, szóközt, és az alábbi karaktereket: '()-/' tartalmazhatja a mező!");
						$(myElement).focus();
						return false;
						}
					break;
				case "hungary":
					var Minta = "aábcdeéfghiíjklmnoóöőpqrstuúüűxyvwz1234567890 AÁBCDEÉFGHIÍJKLMNOPQRSTOÓÖŐUÚÜŰVWXYZ',.-_";
					var Data = $(myElement).value;
					if (Teszt(Data, Minta))
						{
						alert("Csak a magyar ABC betüit, szóközt, számokat, és az alábbi karaktereket: ',.-_ tartalmazhatja a mező!");
						$(myElement).focus();
						return false;
						}
					break;
				case "english":
					var Minta = "abcdefghijklmnopqrstuxyvwz1234567890 ABCDEFGHIJKLMNOPQRSTOUVWXYZ',.-_";
					var Data = $(myElement).value;
					if (Teszt(Data, Minta))
						{
						alert("Csak az angol ABC betüit, szóközt, számokat, és az alábbi karaktereket: ',.-_ tartalmazhatja a mező!");
						$(myElement).focus();
						return false;
						}
					break;
				case "sename":
					var Minta = "abcdefghijklmnopqrstuxyvwz1234567890',.-_";
					var Data = $(myElement).value;
					if (Teszt(Data, Minta))
						{
						alert("Csak az angol ABC kisbetüit, számokat, és az alábbi karaktereket: ',.-_ tartalmazhatja a mező!");
						$(myElement).focus();
						return false;
						}
					break;
				case "filename":
					var Minta = "abcdefghijklmnopqrstuxyvwz1234567890_";
					var Data = $(myElement).value;
					if (Teszt(Data, Minta))
						{
						alert("Csak az angol abc kisbetüit, alsó vonást, és számokat tartalmazhat a mező!");
						$(myElement).focus();
						return false;
						}
					break;
				case "email":
					var Data = $(myElement).value;
					if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(Data))
						{
						}
					else
						{
						alert("Érvénytelen e-mail cím!");
						$(myElement).focus();
						return false;
						}
					break; 
				default:
					var Minta	= relAttribute;
					var Data	= $(myElement).value;
					if (($(myElement).type != 'button') && ($(myElement).type != 'image'))
						{
						if (Teszt(Data, Minta))
							{
							alert("Nem engedélyezett karaktert tartalmaz a mező");
							$(myElement).focus();
							return false;
							}
						}
					break;
				}
			}
		if(GoID != "")
			{
			myConfirm = String($(GoID).getAttribute('rel'));
			myCommandHere = myConfirm.split(":");
			if (myCommandHere[0] == "confirm")
				{
				if (confirm(myCommandHere[1]))
					{
					return true;
					}
				else
					{
					return false;
					}
				}
			else
				{
				return true;
				}
			}
		else
			{
			return true;
			}
		}

	function ValueModify(adat, type)
		{
		switch (type)
			{
			case "allfree":
				var Minta = adat;
				break;
			case "freeweb":
				var Minta = "aábcdeéfghiíjklmnoóöőpqrstuúüűxyvwz1234567890 AÁBCDEÉFGHIÍJKLMNOPQRSTOÓÖŐUÚÜŰVWXYZ.,-_|\/()%=+?!&#<>@*;:";
				break;
			case "number":
				var Minta = "1234567890";
				break;
			case "datum":
				var Minta = "./-1234567890";
				break;
			case "phone":
				var Minta = "1234567890()-/ ";
				break;
			case "hungary":
				var Minta = "aábcdeéfghiíjklmnoóöőpqrstuúüűxyvwz1234567890 AÁBCDEÉFGHIÍJKLMNOPQRSTOÓÖŐUÚÜŰVWXYZ,.'-_";
				break;
			case "english":
				var Minta = "abcdefghijklmnopqrstuxyvwz1234567890 ABCDEFGHIJKLMNOPQRSTOUVWXYZ,.'-_";
				break;
			case "sename":
				var Minta = "abcdefghijklmnopqrstuxyvwz1234567890',.-_";
				break;
			case "filename":
				var Minta = "abcdefghijklmnopqrstuxyvwz1234567890_";
				break;
			case "email":
				var Minta = "abcdefghijklmnopqrstuxyvwz1234567890-_.@";
				break;
			}
		var response;
		response = '';
		for (var i=0; i<adat.length; i++)
			{
			if (Minta.indexOf(adat.charAt(i)) == -1)
				{
				}
			else
				{
				aktualchar = adat.charAt(i);
				response = response + aktualchar;
				}
			}
		return response;
		}

}

function toDefault()
{
	var FormID = arguments[0];

 	for (var i = 1; i < arguments.length; i++) {
		var element = arguments[i];

		if (document.getElementById(FormID)) {
			var FormType = document.getElementById(FormID).type;
	} else
			{
			FormID = FormID+"_"+element;
			if (document.getElementById(FormID))
				{
				var FormType = document.getElementById(FormID).type;
				}
			else
				{
				var FormType = "";
				}
			}

		switch (FormType) {
			case "radio":
				$(FormID).checked = true;
				break;
			case "select-one":
				for(var j = 0; j < $(FormID).length; j++)
					{
					if ($(FormID).options[j].value == element) $(FormID).options[j].selected = true;
					}
				break;
			case "select-multiple":
				for(var j = 0; j < $(FormID).length; j++)
					{
					if ($(FormID).options[j].value == element) $(FormID).options[j].selected = true;
					}
				break;
			case "text":
				$(FormID).value = element;
				break;
			case "hidden":
				$(FormID).value = element;
				break;
			case "checkbox":
				if (element != "f")
					{
					$(FormID).checked = true;
					}
				if (element == "f")
					{
					$(FormID).checked = false;
					}
				break;
			case "textarea":
				$(FormID).value = element;
				break;
			default:
				$(FormID).innerHTML = element;
				break;
        }
	}
}

function JSRun(string)
	{
	StringArray = string.split('<script language="javascript" type="text/javascript">');
	for (i = 1; i < StringArray.length; i++)
		{
		scripta = StringArray[i].split("</script>");
		script = scripta[0];
//		alert(script);
		eval(" "+script+" ");
		}
	}

function Teszt(Data, Minta)
	{
	for (var i=0; i<Data.length; i++)
		{
		if (Minta.indexOf(Data.charAt(i)) == -1)
			{
			return true;
			}
		}
  	return false;
	}
