/**
Author: Forsaken
Powered By: Masters 2007
*/

//Layer
function layer (status, dialog, w, h, t){
	if (!document.getElementById(dialog)){
		alert('Dialog bulunamadı!');
		return false;
	}

	var modalDialogId  = 'modalDialog';

	if(status=="show"){
		if (!w || !h || !t){
			alert('Dialog verileri eksik!');
			return false;
		}

		document.body.style.overflow = 'hidden';

		if (!document.getElementById('shadow')){
			var shadow = document.createElement('div');
			shadow.id = 'shadow';
			shadow.style.position = 'absolute';
			shadow.style.top = '0';
			shadow.style.left = '0';
			shadow.style.zIndex = '1000';
			shadow.style.textAlign = 'center';
			shadow.style.backgroundColor = '#000000';
			shadow.style.width = '2000px';
			shadow.style.height = '2000px';
			if (navigator.appName == "Microsoft Internet Explorer"){
				shadow.style.filter = 'alpha(opacity=60)';
			}else{
				shadow.style.opacity = '0.6';
				shadow.style.mozOpacity = '0.6';
			}
			document.body.appendChild(shadow);
		}

		if (!document.getElementById(modalDialogId)){
			var modalDialog = document.createElement('div');
			modalDialog.id = modalDialogId;
			modalDialog.className = 'dialog';
			modalDialog.style.position = 'absolute';
			modalDialog.style.zIndex = '1001';
			modalDialog.style.width = w;
			modalDialog.style.height = h;

			//Dialog başlığı
			var modalDialogHeader = document.createElement('div');
			modalDialogHeader.className = 'dialogheader';
			modalDialogHeader.style.width = '100%';
			modalDialogHeader.style.lineHeight = '25px';
			modalDialogHeader.style.textAlign = 'left';

			//Hareket noktası
			var modalDialogHeaderMove = document.createElement('div');
			modalDialogHeaderMove.onmouseover = new Function('dragover=true;');
			modalDialogHeaderMove.onmouseout = new Function('dragover=false;');
			modalDialogHeaderMove.style.position = 'absolute';
			modalDialogHeaderMove.style.cursor = 'move';
			modalDialogHeaderMove.style.top = '0';
			modalDialogHeaderMove.style.left = '0';
			modalDialogHeaderMove.style.width = (w - 35) +'px';
			modalDialogHeaderMove.style.height = '25px';

			//Dialog başlık adı
			var modalDialogHeaderTitle = document.createElement('span');
			modalDialogHeaderTitle.style.paddingLeft = '10px';
			modalDialogHeaderTitle.innerHTML = t;

			//Dialog kapatma noktası
			var modalDialogHeaderClose = document.createElement('div');
			modalDialogHeaderClose.style.position = 'absolute';
			modalDialogHeaderClose.style.top = '5px';
			modalDialogHeaderClose.style.right = '10px';
			modalDialogHeaderClose.innerHTML = '<a href="javascript:void(0);" onclick="layer(\'hide\', \''+ dialog +'\')"><img src="objects/sysicons/close.gif" width="16" height="16" align="absmiddle" border="0" hspace="0" alt="Kapat"/></a>';

			//Dialog gövdesi
			var modalDialogBody = document.createElement('div');
			modalDialogBody.id = 'modalDialogBody';
			modalDialogBody.style.overflow = 'auto';
			modalDialogBody.style.textAlign = 'left';

			//Birleştiriyoruz
			modalDialogHeader.appendChild(modalDialogHeaderMove);
			modalDialogHeader.appendChild(modalDialogHeaderTitle);
			modalDialogHeader.appendChild(modalDialogHeaderClose);
			modalDialogBody.appendChild(document.getElementById(dialog));
			modalDialog.appendChild(modalDialogHeader);
			modalDialog.appendChild(modalDialogBody);
			document.body.appendChild(modalDialog);
			document.getElementById(dialog).style.display = 'block';
		}

		//Konumlandırıyoruz
		centerModalDialog();
	}else{
		document.body.style.overflow = 'auto';

		if (document.getElementById('shadow')){
			document.body.removeChild(document.getElementById('shadow'));
		}

		if (document.getElementById(modalDialogId)){
			document.getElementById(dialog).style.display = 'none';
			document.body.appendChild(document.getElementById(dialog));
			document.body.removeChild(document.getElementById(modalDialogId));
		}

		resetform(dialog +'form');
	}

	//Arka plandakileri gizler/gösterir..
	hideshowbehind(null,'shadow');

	//window.scroll(0,0);
	showall(dialog);

	if ((status == 'show') && document.forms[dialog +'form']){
		//En son elemana focus olalım..
		if (document.forms[dialog +'form'].elements.length > 0){
			if (document.forms[dialog +'form'].elements.length == 1){
				window.setInterval('setfocus("'+ dialog +'")',10);
			}else{
				setfocus(document.getElementById(modalDialogId));
			}
		}
	}
}

function centerModalDialog() {
	if (document.getElementById('modalDialog')){
		var w = document.getElementById('modalDialog').style.width;
		var h = document.getElementById('modalDialog').style.height;

		w = w.replace('px', '');
		h = h.replace('px', '');

		document.getElementById('modalDialog').style.left = (document.body.clientWidth / 2) - (w / 2) + document.body.scrollLeft;
		document.getElementById('modalDialog').style.top = (document.body.clientHeight / 2) - (h / 2) + document.body.scrollTop;
	}
}

function setfocus(dialog){
	if (document.getElementById(dialog) && (document.getElementById(dialog).style.display == 'block')){
		if (document.forms[dialog +'form'].elements.length > 0){
			document.forms[dialog +'form'].elements[0].focus();
			//document.forms[dialog +'form'].elements[(document.forms[dialog +'form'].elements.length - 1)].focus();
		}
	}
}

//İşlem dialogu
function processingModalDialog (status, text){
	//Yoksa oluşturuyoruz
	if (!document.getElementById("processModalDialog")){
		var processDialog = document.createElement('div');
		processDialog.id = 'processModalDialog';
		processDialog.style.display = 'none';
		processDialog.style.textAlign = 'center';
		processDialog.style.fontWeight = 'bold';
		processDialog.innerHTML = result;
		document.body.appendChild(processDialog);
	}

	if (document.getElementById("processModalDialog")){
		if (status == "show"){
			var result = '<table width="100%" height="95" border="0" cellpadding="0" cellspacing="0">\n';
			result += '<tr><td align="center">\n';

			if (text){
				result += text;
			}else{
				result += '<img src="objects/sysicons/indicator.gif" width="16" height="16" alt="Yükleniyor" border="0" align="absmiddle" vspace="5" hspace="5"/> İşlem yapılıyor..';
				result += '<div style="color:#FF0000; font-weight:bold; line-height:30px">Lütfen bekleyin</div>';
			}

			result += '</td></tr>\n';
			result += '</table>';

			document.getElementById("processModalDialog").innerHTML = result;

			if (document.getElementById("processModalDialog").style.display == 'none'){
				layer('show', 'processModalDialog', 350, 120, 'İşlem Yapılıyor..');
			}
		}else{
			if (document.getElementById('processModalDialog') && (document.getElementById("processModalDialog").style.display == 'block')){
				layer('hide', 'processModalDialog');
			}
		}
	}
}
//Uyarı penceresi
function warningModalDialog (status, type, message){

	if (status == 'show'){
		switch (type){
			case "warning":
			var color = '#FF0000';
			break;
			case "caution":
			var color = '#5eb500';
			break;
			default:
			var color = '#999999';
		}

		var target = document.getElementById('warningDialog');

		if (!target){
			var el = document.createElement('div');
			el.id = 'warningDialog';
			el.style.position = 'absolute';
			el.style.backgroundColor = color;
			el.style.width = '300px';
			el.style.height = '50px';
			el.style.left = (document.body.clientWidth / 2) - 150 + document.body.scrollLeft;
			el.style.top = (document.body.clientHeight / 2) - 25 + document.body.scrollTop;
			el.style.overflow = 'hidden';
			el.style.border = '2px outset #999999';
			el.style.zIndex = '100';
			
			var r = '<table width="100%" border="0" cellpadding="5" cellspacing="0">\n';
			r += '<tr><td id="warningDialogText" align="center" style="height:50px; color:#FFFFFF; font-weight:bold; font-size:12px">\n';
			r += message;
			r += '</td></tr>\n';
			r += '</table>';
			
			el.innerHTML = r;

			document.body.appendChild(el);
		}else{
			document.getElementById('warningDialogText').innerHTML = message;
			document.getElementById('warningDialogText').style.backgroundColor = color;
		}
	}else{
		var target = document.getElementById('warningDialog');

		if (target){
			document.body.removeChild(target);
		}
	}
	
	//Arkasındakileri görünür/görünmez yapalım
	hideshowbehind('content','warningDialog');
}

//Görünmez olanları görünür yapar
function showall (dialog){
	var source = document.getElementById(dialog);

	if (source){
		var tags = new Array('applet', 'iframe', 'select');

		for (var k=0; k < tags.length; k++) {
			var ar = source.getElementsByTagName(tags[k]);

			var cc = null;
			for (var i=0; i < ar.length; i++){
				cc = ar[i];
				cc.style.visibility = 'visible';
			}
		}
	}
}

//Formun içeriğini sıfırlar
function resetform (formname){
	if (document.forms[formname]){
		document.forms[formname].reset();
	}
}

//Verilen hedef arkasındaki selectleri görünmez yapar
function hideshowbehind (sourcename, targetname) {
	/*
	sourcename: Görünmez yapılacak elemanların bulunduğu div
	targetname: Görünmez yapılacak elemanların üstüne gelecek div
	*/
	var tags = new Array('applet', 'iframe', 'select');
	var source = document.getElementById(sourcename);
	var target = document.getElementById(targetname);

	if (navigator.appName != "Microsoft Internet Explorer"){
		return false;
	}

	if (target){
		var p = getposition(target);
		var EX1 = p.x;
		var EX2 = target.offsetWidth + EX1;
		var EY1 = p.y;
		var EY2 = target.offsetHeight + EY1;
	}else{
		var EX1 = 0;
		var EX2 = 0;
		var EY1 = 0;
		var EY2 = 0;
	}

	for (var k=0; k < tags.length; k++) {
		if (source){
			var ar = source.getElementsByTagName(tags[k]);
		}else{
			var ar = document.getElementsByTagName(tags[k]);
		}

		var cc = null;
		for (var i=0; i < ar.length; i++){
			cc = ar[i];

			p = getposition(cc);
			var CX1 = p.x;
			var CX2 = cc.offsetWidth + CX1;
			var CY1 = p.y;
			var CY2 = cc.offsetHeight + CY1;

			if ((CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
				cc.style.visibility = 'visible';
			}else{
				cc.style.visibility = 'hidden';
			}
		}
	}
}

//Elemanın posizyonunu alır
function getposition (el) {
	var r = { x: el.offsetLeft, y: el.offsetTop };
	if (el.offsetParent) {
		var tmp = getposition(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
}

//Drag
N = (document.all) ? 0 : 1;

var ob;
var dragover = false;

function MD(e) {
	if (dragover){
		if (N) {
			ob = document.getElementById('modalDialog');
			X=e.layerX;
			Y=e.layerY;
			return false;
		}else{
			ob = document.getElementById('modalDialog');
			ob = ob.style;
			X=event.offsetX;
			Y=event.offsetY;
		}
	}
}

function MM(e) {
	if (ob) {
		if (N) {
			ob.style.top = e.pageY-Y;
			ob.style.left = e.pageX-X;
		}else{
			ob.pixelLeft = event.clientX-X + document.body.scrollLeft;
			ob.pixelTop = event.clientY-Y + document.body.scrollTop;

			return false;
		}
	}
}

function MU() {
	ob = null;
}

if (window.addEventListener){
	window.addEventListener('mousedown', MD, false);
	window.addEventListener('mousemove', MM, false);
	window.addEventListener('mouseup', MU, false);
}else if (document.attachEvent){
	document.attachEvent('onmousedown', MD);
	document.attachEvent('onmousemove', MM);
	document.attachEvent('onmouseup', MU);
}
