function BBrowser() {
	this.isIE = navigator.appName == "Microsoft Internet Explorer";
}

bBrowser = new BBrowser();

function BEvent() {
	if (!bBrowser.isIE) document.onmousemove = setCoordNS;	
	this.getEvent = function getEvent() {
		 return window.event ? window.event : window.Event;
	}
	this.getPageX = function getPageX() {		
		var e = this.getEvent();
		e.pageX = e.pageX ? e.pageX : e.x;
		return e.pageX;
	}
	this.getPageY = function getPageY() {
		var e = this.getEvent();
		e.pageY = e.pageY ? e.pageY : e.y;
		return e.pageY;
	}
}
/*
 * FireFox için fare pozisyonunu dinamik yakalar
 */
function setCoordNS(e){
 	window.Event.pageX = e.clientX;
 	window.Event.pageY = e.clientY;
}

function BDoc() {
	this.event = new BEvent();
	this.getElement = function getElement(elementId) {
		var el = document.getElementById(elementId);
		return el ? new BElement(document.getElementById(elementId)) : null;
	}
	this.createBElement = function createBElement(tagName) {
		return new BElement(document.createElement(tagName));
	}
	this.addBody = function addBody(bEl) {
		document.body.appendChild(bEl.element);
	}
	this.removeBody = function removeBody(bEl) {		
		document.body.removeChild(bEl.element);	
	}
	
}

bDoc = new BDoc();

function BElement(el) {
	if (!el) alert("BElement objesi NULL olamaz!");
	this.element = el;
	this.setName = function setName(s) {
		this.element.name = s;
	}	
	this.setId = function setId(s) {
		this.element.id = s;
	}		
	this.setInnerHTML = function setInnerHTML(htm) {
		this.element.innerHTML = htm; 
	}
	this.addInnerHTML = function setInnerHTML(htm) {
		this.element.innerHTML += htm; 
	}	
	this.insertInnerHTML = function setInnerHTML(htm) {
		this.element.innerHTML = htm + this.element.innerHTML; 
	}		
	this.setMousePosition = function setMousePosition() {
		with (this.element.style) {
			left = bDoc.event.getPageX();
			top = bDoc.event.getPageY();
			position = "absolute";		
		}								
	}
	this.getChilds = function getChilds(p) {
		return new BElement(this.element.childNodes[p]);
	}
	this.setVisibility = function setVisibility(b) {
		this.element.style.visibility = b ? "visible" : "hidden";
	}
	this.setDisplay = function setDisplay(param) {
		this.element.style.display = param;
	}
	this.setPosition = function setPosition(pos) {
		this.element.style.position = pos;
	}
	this.setAbsolutePosition = function setAbsolutePosition() {
		var l = this.element.offsetLeft;
		var t = this.element.offsetTop;
		this.element.style.position = "absolute";
		this.element.style.left = l;
		this.element.style.top = t;
	}		
	this.setElementPosition = function setElementPosition(el) {
		var oldPos = el.style.position;
		el.style.position = "absolute";
		var l = el.offsetLeft;
		var t = el.offsetTop;
		el.style.position = oldPos;
		this.element.style.position = "absolute";
		this.element.style.left = l;
		this.element.style.top = t;
	}	
}

function BHint() {
	bDoc.addBody(this);
	this.setHint = function setHint(el) {
		this.element.className = el.element.className;
		this.element.innerHTML = el.element.innerHTML;				
		this.setMousePosition();
		this.setDisplay("block");		
	}
}

BHint.prototype = bDoc.createBElement("div");

function Belsas() {
	this.getHTTP = function getHTTP() {
		if (this.isIE) return new ActiveXObject("Microsoft.XMLHTTP");
		else return new XMLHttpRequest();
		/*
	  http.overrideMimeType('text/html; charset=ISO-8859-9');
	  http.setRequestHeader('Content-Type','text/html; charset=ISO-8859-9');	
	  http.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=ISO-8859-9");	  * 
	   */
	}
	this.getLoadMessage = function getLoadMessage(message) {
		message = '<div class="loadingText">'+message+'</div>';
		return '<table id="loadingPane" ><tr><td align="center">'+message+'</td></tr></table>';
		//return '<div id="loading" class="loading">'+message+'</div>';
	}	
	this.menuLoad = function menuLoad(el) {
		if (el.href) belsas.putHTMLResponse(el.href,'mainPane','Yükleniyor...',true);
		else belsas.putHTMLResponse(el,'mainPane','Yükleniyor...',true);
		return false;
	}
	this.openSearchPage = function openSearchPage(el,request,data) {
		var bEl = bDoc.getElement("searchPage");
		if (!bEl) {
			bEl = bDoc.createBElement("div");
			bEl.setId("searchPage");
			bDoc.addBody(bEl);
			bEl.element.style.overflowY = "auto";
			bEl.element.style.overflowX = "hidden";
			bEl.element.style.width = "300px";
			bEl.element.style.height = "300px";
		}
		bEl.setElementPosition(el);							
		bEl.element.style.top = bEl.element.offsetTop + 20;
		bEl.element.style.left = bEl.element.offsetLeft - 30;		
		this.postHTMLResponse(request,data,"searchPage","Sorgulanıyor");
	}
	this.closeSearchPage = function closeSearchPage(control) {
		if (control && belsas.searched) return;
		var bEl = bDoc.getElement("searchPage");
		bDoc.removeBody(bEl);
	}
	this.putHTMLResponse = function putHTMLResponse(request,elementId,loadingMessage,formFocus) {
		this.sendRequest(request,null,"GET",elementId,loadingMessage,formFocus);
	}	
	this.postHTMLResponse = function postHTMLResponse(request,data,elementId,loadingMessage,formFocus) {
		this.sendRequest(request,data,"POST",elementId,loadingMessage,formFocus);
	}		
	this.postExecHTMLResponse = function postExecHTMLResponse(request,data,elementId,loadingMessage,formFocus) {
		this.sendExecRequest(request,data,"POST",elementId,loadingMessage,formFocus);
	}			
	this.sendFormData = function putFormResponse(formEl,elementId,loadingMessage,formFocus) {
	  this.sendRequest(formEl.action,getFormData(formEl),"POST",elementId,loadingMessage,formFocus);
	}		
	this.sendFormDataRunScript = function putFormResponse(formEl,elementId,loadingMessage,runScript,formFocus) {
	  this.sendRequestRunScript(formEl.action,getFormData(formEl),"POST",elementId,loadingMessage,runScript,formFocus);
	}			
	this.sendRequest = function sendRequest(request,data,method,elementId,loadingMessage,formFocus) {
		var http = this.getHTTP();
	  var el = bDoc.getElement(elementId);
	  http.open(method, request,true);
	  if (method == "POST")	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
	  el.insertInnerHTML(this.getLoadMessage(loadingMessage));	  
	  bDoc.getElement("loadingPane").setAbsolutePosition();
	  http.onreadystatechange = function() {
  	  if(http.readyState == 4) {
  	  	el.setInnerHTML(http.responseText);
  	  	if (formFocus && document.forms[0]) doFormFocus(document.forms[0]);
  	  	if (document.forms[0] && document.forms[0].message) alert(document.forms[0].message);
  	  }
	  }
	  http.send(data);		
	}
	this.sendExecRequest = function sendExecRequest(request,data,method,elementId,loadingMessage,formFocus) {
		var http = this.getHTTP();
	  var el = bDoc.getElement(elementId);
	  http.open(method, request,true);
	  if (method == "POST")	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
	  el.insertInnerHTML(this.getLoadMessage(loadingMessage));	  
	  bDoc.getElement("loadingPane").setAbsolutePosition();
	  http.onreadystatechange = function() {
  	  if(http.readyState == 4) window.execScript(http.responseText);
	  }
	  http.send(data);		
	}	
	this.sendRequestRunScript = function sendExecRequest(request,data,method,elementId,loadingMessage,runScript,formFocus) {
		var http = this.getHTTP();
	  var el = bDoc.getElement(elementId);
	  http.open(method, request,true);
	  if (method == "POST")	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
	  el.insertInnerHTML(this.getLoadMessage(loadingMessage));	  
	  bDoc.getElement("loadingPane").setAbsolutePosition();
	  http.onreadystatechange = function() {
  	  if(http.readyState == 4) runScript();
	  }
	  http.send(data);		
	}		
	this.hintOn = function showHint(el) {
		var be = new BElement(el);
		if (!this.hintElement) this.hintElement = new BHint();
		this.hintElement.setHint(be.getChilds(0));
	}
	this.hintOff = function closeHint() {
		this.hintElement.setDisplay("none");
	}	
} 

function getFormData(formEl) {
  var data = "";
  for (i=0; i < formEl.elements.length; i++) {
  	var eli = formEl.elements[i];
  	if (eli.type == 'radio' && !eli.checked) continue;
  	if (data!="") data += "&";	  		  	
  	data += eli.name + '=' + eli.value;
  }
  return data;	
}

function doFormFocus(formEl) {
	try {
		var i = 0;
		var elma = formEl.elements;
		var l = elma.length;
		if (l == 1 && (!elma[i].readOnly && !elma[i].disabled && elma[i].type != "hidden")) {			
			elma[i].blur();
			elma[i].focus();
			return;
		}
		while (i < l && (elma[i].readOnly || elma[i].disabled || elma[i].type == "hidden")) i++;
		i++;
		while (i < l && (elma[i].readOnly || elma[i].disabled || elma[i].type == "hidden")) i++;
		elma[i].focus();
		i--;
		while (i > 0 && (elma[i].readOnly || elma[i].disabled || elma[i].type == "hidden")) i--;
		elma[i].focus();
	} catch(err) {
		throw new Error("[Odaklama anında hata oluştu] : " + err.message);
	}
}

function openMenu(el) {
	if (el.isOpen != 1 && el.isOpen != 0) el.isOpen = 1; 
	el.isOpen = (el.isOpen == 1) ? 0 : 1; 
	el.style.height = (el.isOpen == 1) ? '100%' : '0px';
	bDoc.getElement("menuFrame").element.style.visibility = (el.isOpen == 1) ? '' : 'hidden';
}

function changeClass(el) {
	var oldCN = el.className;
	if (!el.changeClassName) el.changeClassName = oldCN + 'Change';
	el.className = el.changeClassName;
	el.changeClassName = oldCN;
}

function aciklamaYaz(el) {
	var s = new String(el.value);
	s = s.substr(3,3) + s.substr(0,3) + s.substr(6,4);
	var t = new Date(s);
	if (!t.getYear()) return;
	var aylar = ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'];
	el.form.Aciklama.value = aylar[t.getMonth()] + " " + t.getYear() + " Aidatı";
}

function yonlendir(yon) {
	var s = window.location.href.toString();
	var p = s.indexOf('=')+1;		
	y = p == 0 ? yon : s.substring(p,s.length);
	belsas.putHTMLResponse(y,'mainPane','Yükleniyor...',true);
}

window.onerror = function(err) {
	alert("[BELSAŞ HATA TUTUCU] : " + err);
	return true;
}

function imageOpen(imageRef) {
	document.body.style.overflow = "hidden";
	var sh = window.innerHeight ? window.innerHeight+"px;" : "100%;";
	
	var s = 'position:absolute; top:'+document.body.scrollTop+'; left:0; width:100%; height: ' + sh;	
	document.body.innerHTML += 
	'<DIV id="imageBackPane" style="'+ s +' background-color: black; filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50); ">'+
	'</DIV>'+
	'<table id="imageViewTable" style="'+s+'">'+
	'<tr>'+
	'<td height="100%" id="imageViewPane" align="center" >'+	
	'<table border="0" cellpaddding="0" cellspacing="0">'+
	'<tr style="background-color:blue;">'+
	'<td style="color:white;">&#160;&#160;<b>Resim Görüntüleme Penceresi</b></td>'+
	'<td style="text-align:right;">'+
	'<a href="#" onclick="imageClose(); return false;" style="text-decoration:none;" ><img src="images/geri.gif" style="cursor:hand;border:none;margin-top:3px;" alt="Pecereyi kapatır"/>&#160;&#160;<img src="images/kapat.gif" style="cursor:hand;border:none;margin-top:3px;" alt="Pecereyi kapatır"/></a>&#160;&#160;'+	
	'</td></tr>'+	
	'<tr>'+
	'<td id="imageWindow" align="center" colSpan="2" style="cursor:hand;">'+		
	belsas.getLoadMessage("Resim yükleniyor...")+	
	'</td></tr>'+	
	'</table>'
	'</td></tr>'+	
	'</table>';

	var im = new Image();
	im.onload = function() {
		var w = this.width;
		var h = this.height;
		var bEl = bDoc.getElement("imageViewPane");	
		var imgWin = bDoc.getElement("imageWindow");	
		var ow = bEl.element.offsetWidth-50;
		var oh = bEl.element.offsetHeight-50;
		var u = 0;
		if (w > h) {
			this.width = ow;
			var oran = ow / w;
			var b = h * oran;
			if (b > oh) {
				this.height = oh;
				oran = oh / b;
				this.width = this.width * oran;
			} else this.height = b;
		} else {
			this.height = oh;
			var oran = oh / h;
			var b = w * oran;
			if (b > ow) {
				this.width= ow;
				oran = ow / b;
				this.height = this.height * oran;
			} else this.width = b;
		}
		imgWin.element.innerHTML = '';
		imgWin.element.appendChild(this);
		this.style.filter="revealTrans(duration=2, transition=23)";
		if (this.filters) {
			//this.style.filter="progid:DXImageTransform.Microsoft.Fade(duration=2)";
			//this.style.filter="progid:DXImageTransform.Microsoft.Blinds(duration=2)";
			//this.style.filter="progid:DXImageTransform.Microsoft.Pixelate(maxSquare=10)";
			this.style.visibility="hidden";		
			//this.filters[0].apply();
			this.filters.revealTrans.apply();		
			this.style.visibility="visible";		
			//this.filters[0].play(2);
			this.filters.revealTrans.play();
		}		
	}
	im.onclick = imageClose;
	im.src = imageRef;	
}

function imageClose(el) {
	document.body.style.overflow='auto'; 	
	bDoc.removeBody(bDoc.getElement('imageBackPane')); 	
	bDoc.removeBody(bDoc.getElement('imageViewTable')); 	
}


Belsas.prototype = bBrowser;

belsas = new Belsas();
