// JavaScript Document

//TODO:	alert, prompt

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
} 


function confirmInit() {
	
	var objBody = document.getElementsByTagName("body").item(0);

	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','overlay');
	objOverlay.style.display = 'none';
	objBody.appendChild(objOverlay);

	var objConfirm = document.createElement("div");
	objConfirm.setAttribute('id','confirm');
	objConfirm.style.display = 'none';
	objBody.appendChild(objConfirm);

	var objMessage = document.createElement("h1");
	objMessage.setAttribute('id','confirmMessage');
	objConfirm.appendChild(objMessage);

	var objButtons = document.createElement("div");
	objButtons.className = 'buttons';
	objConfirm.appendChild(objButtons);

	var objButtonYes = document.createElement("input");
	objButtonYes.setAttribute('type','button');
	objButtonYes.className = 'btn';
	objButtonYes.setAttribute('value','Yes');
	objButtonYes.onclick = submitConfirmForm;
	objButtons.appendChild(objButtonYes);

	var objButtonNo = document.createElement("input");
	objButtonNo.setAttribute('type','button');
	objButtonNo.className = 'btn';
	objButtonNo.setAttribute('value','No');
	objButtonNo.onclick = hideConfirm;		
	objButtons.appendChild(objButtonNo);


	var objConfirmForm = document.createElement("input");
	objConfirmForm.setAttribute('type','hidden');
	objConfirmForm.setAttribute('id','confirmForm');
	objConfirmForm.setAttribute('value','');
	objButtons.appendChild(objConfirmForm);

}


function hideConfirm() {
	$('overlay').style.display = 'none'; 
	$('confirm').style.display = 'none';
	document.body.style.overflow = 'auto';
}

function showConfirm () {
	document.body.style.overflow = 'hidden';
    $('overlay').style.opacity = (0);
    $('overlay').style.MozOpacity = (0);
    $('overlay').style.KhtmlOpacity = (0);
    $('overlay').style.filter = "alpha(opacity=" + 0 + ")";

	$('overlay').style.display = 'block';
	$('confirm').style.display = 'block';
	opacity('overlay',0,50,200);

}




















function promptInit() {
	
	var objBody = document.getElementsByTagName("body").item(0);

	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','overlay');
	objOverlay.style.display = 'none';
	objBody.appendChild(objOverlay);

	var objPrompt = document.createElement("div");
	objPrompt.setAttribute('id','prompt');
	objPrompt.style.display = 'none';
	objBody.appendChild(objPrompt);

	var objMessage = document.createElement("h1");
	objMessage.setAttribute('id','promptMessage');
	objPrompt.appendChild(objMessage);


	var objTextarea = document.createElement("textarea");
	objTextarea.setAttribute('id','promptMsg');	
	objTextarea.className = 'text';
	objPrompt.appendChild(objTextarea);



	var objButtons = document.createElement("div");
	objButtons.className = 'buttons';
	objPrompt.appendChild(objButtons);

	var objButtonYes = document.createElement("input");
	objButtonYes.setAttribute('type','button');
	objButtonYes.className = 'btn';
	objButtonYes.setAttribute('value','Yes');
	objButtonYes.onclick = submitPromptForm;
	objButtons.appendChild(objButtonYes);

	var objButtonNo = document.createElement("input");
	objButtonNo.setAttribute('type','button');
	objButtonNo.className = 'btn';
	objButtonNo.setAttribute('value','No');
	objButtonNo.onclick = hidePrompt;		
	objButtons.appendChild(objButtonNo);


	var objPromptForm = document.createElement("input");
	objPromptForm.setAttribute('type','hidden');
	objPromptForm.setAttribute('id','promptForm');
	objPromptForm.setAttribute('value','');
	objButtons.appendChild(objPromptForm);

}


function hidePrompt() {
	$('overlay').style.display = 'none'; 
	$('prompt').style.display = 'none';
	document.body.style.overflow = 'auto';
}

function showPrompt () {
	document.body.style.overflow = 'hidden';
    $('overlay').style.opacity = (0);
    $('overlay').style.MozOpacity = (0);
    $('overlay').style.KhtmlOpacity = (0);
    $('overlay').style.filter = "alpha(opacity=" + 0 + ")";

	$('overlay').style.display = 'block';
	$('prompt').style.display = 'block';
	opacity('overlay',0,50,200);

}














function submitConfirmForm() {
	form = $('confirmForm').value;
	$(form).submit();
	hideConfirm();
}

function submitPromptForm() {
	form = $('promptForm').value;
	objPromptForm = document.getElementById($('promptForm').value);
	
	var objPromptMessage = document.createElement("input");
	objPromptMessage.setAttribute('type','hidden');
	objPromptMessage.setAttribute('id','promptMessage');
	objPromptMessage.setAttribute('name','promptMessage');	
	objPromptMessage.setAttribute('value',$('promptMsg').value);
	objPromptForm.appendChild(objPromptMessage);	
	
	
	$(form).submit();
	hidePrompt();
}


function confirm(message,btn) {

	forms = document.getElementsByTagName("form");
	for (i=0; i<forms.length; i++) {
		for (j=0; j<forms[i].elements.length; j++) {
			if (btn == forms[i].elements[j]) {
				$('confirmForm').value = forms[i].id;
				break;
			}
		}
	}
	
	
	showConfirm();
	
	$('confirmMessage').innerHTML = message;
	return false;
}




function prompt(message,btn) {
//return false;
	forms = document.getElementsByTagName("form");
	for (i=0; i<forms.length; i++) {
		for (j=0; j<forms[i].elements.length; j++) {
			if (btn == forms[i].elements[j]) {
				$('promptForm').value = forms[i].id;
				break;
			}
		}
	}
	
	$('promptMsg').value = '';
	showPrompt();
	
	$('promptMessage').innerHTML = message;
	return false;
}

//INIT
Event.observe(window, 'load', confirmInit);
Event.observe(window, 'load', promptInit);