	  mouseMoveState = new Array();
mouseMoveState["normalEditMode"] = 'adjustHeight(yPos)';

var updateOnKeyPress = true;

function createXMLHttpRequest(){
	var ua;
	if(window.XMLHttpRequest) {
		try {ua = new XMLHttpRequest();} catch(e) {ua = false;}
	} else if(window.ActiveXObject) {
		try {ua = new ActiveXObject("Microsoft.XMLHTTP");} catch(e) {ua = false;}
	}
	return ua;
}
function ajax_send(reqString, url){
	var req = createXMLHttpRequest();
	req.open("POST", url, true);
	req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	req.setRequestHeader("Content-length", reqString.length);
	req.setRequestHeader("Connection", "close");
	return req;
}
function saveSession(){  //This function creates the string to be sent to updatePages
	createLoadingDiv("Saving Session, Please Wait...", "blue");
	var url = "saveSession.php";
	reqString = "session=" + document.getElementById("sessionName").value;
	reqString += "&css=" + cssBox.value;
	reqString += "&html=" + textBox.value;
	reqString += "&accessKey=" + document.getElementById("accessKey").value;
	var req = ajax_send(reqString, url);
	req.onreadystatechange = function(){
		if(req.readyState == 4 && req.status == 200){
			clearLoadingDiv();
			getPages();
		}
	}
	req.send(reqString);
}
function deleteSession(){
	createLoadingDiv("Deleting Session, Please Wait...", "pink");
	var url = "deleteSession.php";
	reqString = "session=" + document.getElementById("sessionName").value;
	reqString += "&accessKey=" + document.getElementById("accessKey").value;
	var req = ajax_send(reqString, url);
	req.onreadystatechange = function(){
		if(req.readyState == 4 && req.status == 200){
			clearLoadingDiv();
			getPages();
		}
	}
	req.send(reqString);
}
function getPages(){
  var url = "getPages.php";
  createLoadingDiv("Repopulating List, Please Wait...", "orange");
  reqString = "";
	var req = ajax_send(reqString, url);
	req.onreadystatechange = function(){
		if(req.readyState == 4 && req.status == 200){
			clearLoadingDiv();
			var response = req.responseText;
			responseData = response.split("[webezerk.com::end]");
			div = document.getElementById("loadSessionID");
			while (div.firstChild){div.removeChild(div.firstChild);};
			for(i=0; i < responseData.length; i++)
			{
				var option = Array();
				option = responseData[i].split("[webezerk.com::el]");
				var selectBox = document.getElementById("loadSessionID");
				var optionTag = createTag("option", selectBox, option[1]);
				optionTag.value = option[0];
			}
		}
	}
	req.send(reqString);
}
function loadSession(){  //This function creates the string to be sent to updatePages
	createLoadingDiv("Loading Session, Please Wait...", "green");
	var url = "retrieveSession.php";
	reqString = "sessionID=" + document.getElementById("loadSessionID").value;
	var req = ajax_send(reqString, url);
	req.onreadystatechange = function(){
		if(req.readyState == 4 && req.status == 200){
			var response = req.responseText;
			var responseData = response.split("[webezerk.com::end]");
			textBox.value = responseData[2];
			cssBox.value = responseData[3];
			document.getElementById("sessionName").value = responseData[0];
			changeText(textBox, displayBox);
			changeCSS();
			clearLoadingDiv();
			setPercentages();
			document.forms[0].submit();
		}
	}
	req.send(reqString);
}
function changeText(textBox, displayBox){
	createCookie("HTML",textBox.value);
	setFormValues();
}
function changeCSS(){
	var styleContent = frames['testIFrame'].document.getElementById("styleContent");
	try{
	styleContent.innerHTML = document.getElementById("cssTextArea").value;
	}catch(e){
	
	}
	createCookie("CSS",document.getElementById("cssTextArea").value);
	setFormValues();
}
function setFormValues(){
  frames['testIFrame'].document.getElementById("xhtml").innerHTML = textBox.value;
try {frames['testIFrame'].document.getElementById("cssDiv").innerHTML = cssBox.value;} catch(e) {}
}
var workingAreaHeight, textBox, cssBox, displayBox, styleArea, customize, loadButton, saveButton, deleteButton, XHTMLbttn, cssbtn, adjustmentBar, editArea, cssBlock, xhtmlBlock, submitArea, IFrame;
window.onload = function(){
	workingAreaHeight = document.documentElement.clientHeight - 140;
	textBox = document.getElementById("htmlTextArea");
	cssBox = document.getElementById("cssTextArea");
	customize = document.getElementById("customize");
	loadButton = document.getElementById("loadButton");
	saveButton = document.getElementById("SaveButton");
	deleteButton = document.getElementById("deleteButton");
	adjustmentBar = document.getElementById("adjustmentBar");
	autoUpdate = document.getElementById("autoUpdate");
	
	IFrame = document.getElementById("testIFrame");
	displayBox = frames['testIFrame'].document.getElementById("xhtml");
	styleArea = frames['testIFrame'].document.getElementById("cssDiv");
	editArea = document.getElementById("editArea");
	submitArea = document.getElementById("submitArea");
	cssBlock = document.getElementById("cssBlock");
	xhtmlBlock = document.getElementById("htmlBlock");
	if(readCookie("HTML")){
	  textBox.value = readCookie("HTML");
	  changeText(textBox, displayBox);
	}
	if(readCookie("CSS")){
	  cssBox.value = readCookie("CSS");
	  changeCSS();
	}
	adjustmentBar.onmouseover = function(){
		
	}
	adjustmentBar.onmousedown = function(){
	  activeMouseState = "normalEditMode";
	  document.onmousemove = mouseYPos;
	  document.onmouseup = function(){
	    document.onmousemove = "";
	  }
	}
	document.onmouseup = function(){
		document.onmousemove = "";
	}
	autoUpdate.onclick = function(){
		updateOnKeyPress = (updateOnKeyPress)? false:true;
		this.className = (updateOnKeyPress)? "autoUpdate_on" : "autoUpdate_off";
		changeText(textBox, displayBox);	
		changeCSS();
		//alert(updateOnKeyPress);
	}
	textBox.ondblclick = function()
	{
	  //alert("double clicked");
	  this.className = (this.className == "htmlTextArea")? "htmlTextAreaActive" : "htmlTextArea";
	  //alert(this.className);
	}
	textBox.onkeyup = function(evt){
	if(!evt){evt = window.evt}
	//alert(evt.keyCode);
		if(updateOnKeyPress)
		{
			changeText(textBox, displayBox);
		}
	}
	cssBox.onkeyup = function(){
		if(updateOnKeyPress)
		{
			changeCSS();
		}
	}
	
	
    if(cssBox.addEventListener ) {
        cssBox.addEventListener('keydown',this.keyHandler,false);
    } else if(el.attachEvent ) {
        cssBox.attachEvent('onkeydown',this.keyHandler); /* damn IE hack */
    }

	
	
	
	
	customize.onclick = function(){
	  configureDialog();
	}
	loadButton.onclick = function(){
	   loadSession();
	}
	deleteButton.onclick = function(){
	  deleteSession();
	}
	saveButton.onclick = function(){
		saveSession();
	}
	setDisplayAreas();
	setPercentages();
	document.forms['editForm'].submit();
	adjustHeight(400);
}
window.onresize = function(){  
  setPercentages();
}
function createCookie(name,value) {
	var days = 30;
	var date = new Date();
	date.setTime(date.getTime()+(days*24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
	value = escape(value);
	document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	var ret = null;
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0){
		ret = c.substring(nameEQ.length,c.length);
		ret = unescape(ret);
		}
	}
	return ret;
}
function eraseCookie(name) {
	createCookie(name,"",-1);
}
function setDisplayAreas(){
	XHTMLbttn = document.getElementById("XHTMLbtn");
	cssbtn = document.getElementById("cssbtn");
	XHTMLbttn.onclick = function(){	
	  this.className = (this.className == "XHTMLbtn_on")? "XHTMLbtn" : "XHTMLbtn_on";
	  setPercentages();
	}
	cssbtn.onclick = function(){
	  this.className = (this.className == "cssbtn_on")? "cssbtn" : "cssbtn_on";
	  setPercentages();
	}
	  
}
function adjustHeight(yPos){
  var lowerLimit = editArea.offsetTop + 75;
  var upperLimit = workingAreaHeight;
  if(yPos > lowerLimit && yPos < upperLimit){
    var total = 0;
	var editHeight = yPos-parseInt(editArea.offsetTop);
    editArea.style.height = editHeight + "px";
	xhtmlBlock.style.height = editHeight + "px";
	var editFields = editArea.getElementsByTagName("textarea");
	for(i=0; i<editFields.length; i++){editFields[i].style.height = editHeight -45+ "px";}
	cssBlock.style.height = "402px";
	adjustmentBar.style.top = yPos + "px";
	//alert("yPos = " + yPos + " Edit Area is " + xhtmlBlock.style.height);
	submitArea.style.top = yPos + 7 +  "px";
	IFrame.style.top = (yPos + 30) + "px";
	IFrame.style.height = workingAreaHeight - parseInt(editArea.style.height) + "px";
	document.getElementById("editForm").style.height = yPos + 25 + "px";
  }else{
    //alert("less than");
  };

  
//editArea	height = top - xPos;
//htmlBlock	height = top - xPos;
//cssBlock	height = top - xPos;

//adjustmentBar	top = xPos;
//submitArea	top = xPos + adjustmentBar.height;
//testIFrame	top = xPos + adjustmentBar.height + submitArea.height;
}
function setPercentages(){
  workingAreaHeight = document.documentElement.clientHeight - 140;
  adjustHeight(parseInt(adjustmentBar.style.top));
  var xhtmlDisplay = (document.getElementById("XHTMLbtn").className == "XHTMLbtn_on")? true: false;
  var cssDisplay = (document.getElementById("cssbtn").className == "cssbtn_on")? true: false;
  cssBlock.style.display = (cssDisplay == true)? "inline" : "none";
  xhtmlBlock.style.display = (xhtmlDisplay == true)? "inline" : "none";
  var areas = 0;
  if(cssDisplay == true){areas += 1;}
  if(xhtmlDisplay == true){areas += 1;}
  if(areas > 0){
    var width = (document.body.clientWidth / areas);
	if (navigator.appName == 'Microsoft Internet Explorer')
	{
	  width -= 13;
	}else
	{
	  width -=5;
	}
  }
  cssBlock.style.width = width + "px";
  xhtmlBlock.style.width = width + "px";
}
var configDialogActive = false;
function configureDialog(){
  if (configDialogActive == false){
  configDialogActive = true;
  var configDiv = createTag("div", "", "", "", "configDiv");
  var header = createTag("h2", configDiv, "Set Window Configuration", "", "");
  var nameRow = new Array();
  nameRow["css"] = createRow(configDiv, "cssHeight", "Set CSS Edit Area Width")
  nameRow["xhtml"] = createRow(configDiv, "xhtmlHeight", "Set XHTML Edit Area Width")
  document.getElementsByTagName("body")[0].appendChild(configDiv);
  }else{
  document.getElementsByTagName("body")[0].removeChild(document.getElementById("configDiv"));
  configDialogActive = false;
  }
}
function createLoadingDiv(messageText, color){
  var div = createTag("div", document.getElementsByTagName("body")[0], "", "loadingBG")
  var divColor = createTag("div", div, "", color, "loadInfoPanel");
  createTag("p", divColor, messageText);
  setPercentages();
}

function clearLoadingDiv(){
  var clearDiv = document.getElementById("loadInfoPanel").parentNode;
  while (clearDiv.firstChild){clearDiv.removeChild(clearDiv.firstChild);};
  document.getElementsByTagName("body")[0].removeChild(clearDiv);
}
function createRow(parent, id, lableText){
	var row = createTag("div", parent, "", "itemRow");
	createTag("label", row, lableText, "", "");
	createInput("input", row, "", "", "");
	return row;
}
function createTag(tag, parent, Text, Class, ID){
	var element = document.createElement(tag);
	if(testProperty(parent)){
	parent.appendChild(element);
	}
	if(testProperty(ID)){
		element.id = ID;
	}
	if(testProperty(Class)){
		element.className = Class;
	}
	if(testProperty(Text)){
		textElement = document.createTextNode(Text);
		element.appendChild(textElement);
	}
	return element;
}
function createInput(Tag, Parent, Type, MaxLength, Class, ID){
	element = createTag(Tag, Parent, "", Class, ID);
	element.maxLength = MaxLength;
	element.type = Type;
	return element;
}
function testProperty(text){
	if (text != "" && text != "undefined" && text != null){
		ret = true;
	}else{
		ret = false;
	}
	return ret;
}
function testField(element){
	text = element.value;
	if (text != "" && text != "undefined" && text != null && text != " " && text != "Enter Text Here"){
		ret = text;
		element.className = "";
	}else{
		ret = false;
		element.className = "warningBorder";
	}
	return ret;
}


    function keyHandler(e) {
        var TABKEY = 9;
        if(e.keyCode == TABKEY) {
            this.value += "    ";
            if(e.preventDefault) {
                e.preventDefault();
            }
            return false;
        }
    }
