var imagePostfix = "Img";
var spanPostfix = "Text";
var divPostfix = "Div";

var EMAIL_PATTERN = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

function hoverIcon(obj, e) {
	
	if (!e) e = window.event;
		
	var ICON = "_icon";
	var SICON = "_sicon";

	var image = obj.src;
	var imageStyle = obj.style.cssText;
	var isFilter = (imageStyle.match("FILTER") != null);
	var re = /src=['"](https?[^'"]+)['"]/;

	if (isFilter) {
		var theMatch = imageStyle.match(re);
		image = theMatch[1];
	}
	var imagePath = image.substring(0, image.lastIndexOf("/") + 1);
	var imageName = image.substring(image.lastIndexOf("/") + 1, image.length);
	var imageId = imageName.substring(0, imageName.lastIndexOf("_"));
	var imageType = imageName.substring(imageName.lastIndexOf("_"), imageName.lastIndexOf("."));
	var imageExt = imageName.substring(imageName.lastIndexOf(".") + 1, imageName.length);

	if (imageName == "blank.gif")
		return;
	
	if (imageType == ICON &&
		e.type == "mouseover") {
		imagePath += imageId + SICON + "." + imageExt;
	}
	else {
		imagePath += imageId + ICON + "." + imageExt;		
	}
	
	if (!isFilter) {
		obj.src = imagePath;
	}
	else {
		obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imagePath + "', sizingMethod='image')"
	}
}

function detailBox(type)
{
	var obj = _(type + imagePostfix);
	var image = obj.src;
	var imageStyle = obj.style.cssText;
	var isFilter = (imageStyle.match("FILTER") != null);
	var re = /src=['"](https?[^'"]+)['"]/;
	if (isFilter) {
		var theMatch = imageStyle.match(re);
		image = theMatch[1];
	}
	var imagePath = image.substring(0, image.lastIndexOf("/") + 1);
	var imageName = image.substring(image.lastIndexOf("/") + 1, image.length);
	var imageId = imageName.substring(0, imageName.lastIndexOf("_"));
	var imageType = imageName.substring(imageName.lastIndexOf("_") + 1, imageName.lastIndexOf("."));
	var imageExt = imageName.substring(imageName.lastIndexOf(".") + 1, imageName.length);

	var div = _(type + divPostfix);
//		var span = _(type + spanPostfix);
	var disp = "";
	var vis = "";
	var alt = "";
	if (div.style.display == "") {
		vis = "hidden";
		disp = "none";
		alt = "Részletek megjelenítése";
		imagePath += "down" + "_" + imageType + "." + imageExt; 
	}
	else {
		vis = "visible";
		disp = "";
		alt = "Részletek elrejtése";
		imagePath += "up" + "_" + imageType + "." + imageExt; 
	}

	window.location = "#" + type;

	div.style.visibility = vis;
	div.style.display = disp;
	obj.title = alt;
	obj.alt = alt;

	if (!isFilter) {
		obj.src = imagePath;
	}
	else {
		obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imagePath + "', sizingMethod='image')"
		//obj.style.cssText = imageStyle.replace(re, "src='" + imagePath + "'");
	}
}

function registerEmail() {
	window.location = "newsLetterReg.php";
}

function Size(w, h) {
	this.W = w;
	this.H = h;
	return this;
}
Size.W = 0;
Size.H = 0;

function getDocDim() {
    var D = document;
    var w,h;
    
    h = Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
    
    w = Math.max(
        Math.max(D.body.scrollWidth, D.documentElement.scrollWidth),
        Math.max(D.body.offsetWidth, D.documentElement.offsetWidth),
        Math.max(D.body.clientWidth, D.documentElement.clientWidth)
    );
    return new Size(w, h);
}

function showModalBG(show) {
	var modalBG = _("divModalBG");
	var modalStyle = modalBG.style;
	
	if (show == null &&
		modalStyle.display != "") {
		return;
	}
	modalStyle.display = (show)?"":"none";
	resizeById("divModalBG");
}

function toggleLoading(show) {
	showModalBG(show);
	
	var loadingImg = _("imgLoading");
	loadingImg.style.display = (show)?"":"none"; 	
}

function trim(txt) {
	return txt.replace(/^\s+|\s+$/g, '') ;
}

String.prototype.format = function(){
    var pattern = /\{\d+\}/g;
    var args = arguments;
    return this.replace(pattern, function(capture){ return args[capture.match(/\d+/)]; });
};

function _(name) {
	return document.getElementById(name);
}

var MSG_TYPE = {HTML:0, JS:1};

function MessageHandler() {
	this.message = new Array();
	this.msgType = MSG_TYPE.HTML;
	
	this.setMsg = MessageHandler_setMsg;
	this.getMsg = MessageHandler_getMsg;
	this.clearMsg = MessageHandler_clearMsg;
	this.hasMsg = MessageHandler_hasMsg;
	this.toString = MessageHandler_toString;
}

function MessageHandler_setMsg(msg) {
	this.message[this.message.length] = msg;
}

function MessageHandler_getMsg() {
	return this.message;
}

function MessageHandler_toString() {
	var msg = "";
	for(var i=0, len=this.message.length; value=this.message[i], i<len; i++) {
		msg += value + ((this.msgType == MSG_TYPE.HTML)?"<BR/>":"\n");
	}
	return msg;
}

function MessageHandler_clearMsg() {
	this.message = new Array();
}

function MessageHandler_hasMsg() {
	return (this.message.length > 0);
}
// **********************
// * AJAX functionality *
// **********************
function GetXmlHttpObject() {
	if (window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	}
	
	return null;
}

function GetXmlDoc() {
	var root = '<?xml version="1.0" encoding="utf-8"?><root></root>';
	var xmlDoc;
	if( document.implementation && document.implementation.createDocument ) { 
		xmlDoc = document.implementation.createDocument("","",null); 
		xmlDoc.async=false;
		var parser=new DOMParser();
		xmlDoc=parser.parseFromString(root, "text/xml");
	}
	else {
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.loadXML(root); 
	}
	
	return xmlDoc;
}

function getXML(obj) {	
	var objXMLSerializer = new XMLSerializer;        

	var strXML = objXMLSerializer.serializeToString(obj);        

	return strXML;
}

// change pdf files
function changePDFContent(objID, allObj) {
	for (var i = 0; i < allObj.length; i++) {
		var tmp = _(allObj[i]);
		tmp.style.display = (allObj[i] == objID) ? "" : "none";
	}	
}

function getObj(name){
    if (document.getElementById){
        this.obj = _(name);
        this.style = _(name).style;
    }
    else if (document.all){
        this.obj = document.all[name];
        this.style = document.all[name].style;
    }
}

function getWinSize(){
   var iWidth = 0, iHeight = 0;
   var offset = {X:0, Y:0};
   
   if (document.documentElement && document.documentElement.clientHeight){
       iWidth = parseInt(document.documentElement.scrollWidth,10);
       iHeight = parseInt(document.documentElement.scrollHeight,10);
   }
   else if (document.body){
       iWidth = parseInt(document.body.scrollWidth,10);
       iHeight = parseInt(document.body.scrollHeight,10);
   }
   return {width:iWidth+offset.X, height:iHeight+offset.Y};
}

function resizeById(obj) {
    var objContent = new getObj(obj);
    if (objContent.style.display == "none") {
    	return;
    }
    
    var objWinSize = getWinSize();

    objContent.style.width = objWinSize.width + "px";
    objContent.style.height = objWinSize.height + "px";
}

window.onresize = function() { resizeById('divModalBG'); };

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
		return [curleft,curtop];
	}
}	

