function createRequest(){
    http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            // set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    if (!http_request) {
        alert('Cannot create XMLHTTP instance');
        return false;
    } else {
        return http_request;
    }
}

function updatePosition(currentX,currentY,element_id) { 
    if(readCookie('PHPSESSID') == null) document.location = "./login.php?se";
    var xmlhttp = createRequest();
    xmlhttp.open('POST', 'notes/update-pos.php', true);
    
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send('id=' + element_id + '&x=' + currentX + '&y=' + currentY);
    
    layout = '0';
    saveSinglePosition(element_id);
   
}

function deleteElement(element_id) { 
    if(readCookie('PHPSESSID') == null) document.location = "./login.php?se";
    var xmlhttp = createRequest();
    xmlhttp.open('POST', 'notes/delete.php', true);
    
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.status == 200){
        	    popArray(element_id);
        	    if(layout == "2") MoveEffect("2");
            } else
                alert(document.location = "./login.php?se");
        }
    }
    
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send('id=' + element_id);
}

function stickNote(){
    // if there is a file then we will submit normally
    if(document.forms['note_form'].file.value == ""){
    	    if(readCookie('PHPSESSID') == null) document.location = "./login.php?se";
	    var xmlhttp = createRequest();
	    xmlhttp.open('POST','notes/save.php',true);
	    xmlhttp.onreadystatechange = function() {  
			if (xmlhttp.readyState == 4) {
			    if (xmlhttp.status == 200){
					Effect.Fade('enter-it',{duration:0.00});
					Effect.Fade('save-it',{duration:0.00});
					document.forms['note_form'].reset();
					s('','','');  
					load(editing);
			    }
			    else { document.location = "./login.php?se" }
			}
	   }

	   var priority = document.forms['note_form'].p.value;
	   var filename = encodeURI(document.forms['note_form'].file.value);
	   var note_contents = encodeURI(document.forms['note_form'].note.value);
	   var x_pos = findPosX(document.getElementById(editing));
	   var y_pos = findPosY(document.getElementById(editing));
	   var share = encodeURI(document.forms['note_form'].s.value);

	   xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	   var poststr = "";
	   poststr = "element_id=" + editing;
	   poststr += "&x=" + x_pos;
	   poststr += "&y=" + y_pos;
	   poststr += "&p=" + priority;
	   poststr += "&file=" + filename;
	   poststr += "&note=" + note_contents;
	   poststr += "&s=" + share;
	   xmlhttp.send(poststr);
	   n = "";
	   
	   // remove the welcome message
	   if(document.getElementById("welcome-message"))
	   	document.getElementById("welcome-message").style.display = "none";
	} else {
		// submit normally
		document.forms['note_form'].x.value = findPosX(document.getElementById(editing));
		document.forms['note_form'].y.value = findPosY(document.getElementById(editing));
		document.forms['note_form'].action = "notes/save.php";
		document.forms['note_form'].submit();
		//document.forms['note_form'].reset();
		n = "";
	}
	
}

function cancel() {
	Effect.Fade('enter-it',{duration:0.00});
	document.forms['note_form'].reset();
	
	if(n == "Y") {
		Effect.Fade(editing);
		editing = "";
		n = "";
	}
}



function s(action,id,uid){
    var xmlhttp = createRequest();
    xmlhttp.open('POST','s.php',true);
    
    xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200){
                    refreshMessages(xmlhttp.responseText);
                    if(action == "A"){
                        document.location = "home.php"; // this will load the new note
                    }
                }
                else { document.location = "./login.php?se" }
            }
    }
   
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    var poststr = "";
    poststr = "a=" + action;
    poststr += "&id=" + id;
    poststr += "&uid=" + uid;
    
    xmlhttp.send(poststr);
}

function refreshMessages(responseText){
	document.getElementById("messages-number").innerHTML = "(" + responseText.substr(0,responseText.indexOf("|")) + ")";
	document.getElementById("messages").innerHTML = responseText.substr(responseText.indexOf("|")+1,responseText.length);
}

function load(element_id){
	var xmlhttp = createRequest();
	xmlhttp.open('POST','notes/load-note.php',true);
	xmlhttp.onreadystatechange = function() {  
		if (xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200){
				var response = xmlhttp.responseText;
				var response_array = response.split("<<>>");
				var inner_html = "<div style=\"float:right;padding-right:17px;margin-top:-25px;\"><a href=\"javascript:deleteNote('" + element_id + "');\"><img src=\"./images/x.gif\" border=0 style=\"position:relative\"></a></div><p class=\"inner-note-text-style\">" + response_array[1] + "</p>" ;
				inner_html += "";
				if(response_array[3] != ""){
					inner_html += "<p style=\"font-size:11px;position:absolute;top:160px;left:20px;\">"+response_array[3]+"<br>" + response_array[5] + " <a href=\"uploads/" + response_array[4] + "\" style=\"color:#222222;\" target=_blank>Download File</a></p>";
				}
			
				if(response_array[2] == "L"){
					if(window.navigator.appVersion.indexOf('MSIE 6') != -1)
						document.getElementById("inner-"+element_id).style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale src='images/note-y.png');";
					else
						document.getElementById("inner-"+element_id).style.background="url('images/note-y.png') no-repeat";	
				} else if(response_array[2] == "B"){
					if(window.navigator.appVersion.indexOf('MSIE 6') != -1)
						document.getElementById("inner-"+element_id).style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale src='images/note-b.png');";
					else
						document.getElementById("inner-"+element_id).style.background="url('images/note-b.png') no-repeat";	
				} else if(response_array[2] == "G"){
					if(window.navigator.appVersion.indexOf('MSIE 6') != -1)
						document.getElementById("inner-"+element_id).style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale src='images/note-g.png');";
					else
						document.getElementById("inner-"+element_id).style.background="url('images/note-g.png') no-repeat";	
				} else if(response_array[2] == "P"){
					if(window.navigator.appVersion.indexOf('MSIE 6') != -1)
						document.getElementById("inner-"+element_id).style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale src='images/note-p.png');";
					else
						document.getElementById("inner-"+element_id).style.background="url('images/note-p.png') no-repeat";	
				} else if(response_array[2] == "W"){
					if(window.navigator.appVersion.indexOf('MSIE 6') != -1)
						document.getElementById("inner-"+element_id).style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale src='images/note-w.png');";
					else
						document.getElementById("inner-"+element_id).style.background="url('images/note-w.png') no-repeat";	
				} else {
					if(window.navigator.appVersion.indexOf('MSIE 6') != -1)
						document.getElementById("inner-"+element_id).style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale src='images/note-r.png');";
					else
						document.getElementById("inner-"+element_id).style.background="url('images/note-r.png') no-repeat";
				}
				document.getElementById("inner-"+element_id).innerHTML = inner_html;
			}
			else { document.location = "./login.php?se" }
		}
	}
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send("element_id=" + element_id);	
} // end load

function edit(element_id){
	if(readCookie('PHPSESSID') == null) document.location = "./login.php?se";
	var xmlhttp = createRequest();
	xmlhttp.open('POST','notes/load-note.php?edit',true);
	xmlhttp.onreadystatechange = function() {  
		if (xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200){
				var response = xmlhttp.responseText;
				var response_array = response.split("<<>>");
				document.forms['note_form'].note.value = response_array[1];
				document.forms['note_form'].p.value = response_array[2];
				if(response_array[2] == "L")document.getElementById('note').style.background='#F5EEBA';
				if(response_array[2] == "H")document.getElementById('note').style.background='#F2C6BD';
				if(response_array[2] == "B")document.getElementById('note').style.background='#9ACBFC';
				if(response_array[2] == "G")document.getElementById('note').style.background='#97D68B';
				if(response_array[2] == "P")document.getElementById('note').style.background='#C5A8FF';
				if(response_array[2] == "W")document.getElementById('note').style.background='#FFFFFF';
				
				if(response_array[3] != ""){
					document.getElementById("file-upload").style.display="none";
					document.getElementById("file-upload-text").style.display="none";
					document.getElementById("file-upload-head").style.display="none";
					document.getElementById("uploaded-file-head").style.display="inline";
					document.getElementById("uploaded-file").style.display="inline";
					document.getElementById("uploaded-file").innerHTML = "<a href=\"uploads/" + response_array[4] + "\" target=_blank style=\"color:#222222;\">"+response_array[3]+"</a> | <a href=\"#\" style=\"color:#222222;\" onClick=\"delete_file('" + response_array[4] + "');\">delete</a>";
				} else {
					document.getElementById("file-upload").style.display="inline";
					document.getElementById("file-upload-text").style.display="inline";
					document.getElementById("file-upload-head").style.display="inline";
					document.getElementById("uploaded-file-head").style.display="none";
					document.getElementById("uploaded-file").style.display="none";
				}
				Effect.Appear("enter-it",{duration:0.0,from:0.0,to:1.0});
			}
			else { document.location = "./login.php?se" }
		}
	}
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send("element_id=" + element_id);	
}

function delete_file(fid){
	if(readCookie('PHPSESSID') == null) document.location = "./login.php?se";
	var xmlhttp = createRequest();
	xmlhttp.open('POST','notes/delete-file.php',true);
	
	xmlhttp.onreadystatechange = function() {  
		if (xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200){
				document.getElementById('file-upload').style.display="inline";
				document.getElementById('file-upload-text').style.display="inline";
				document.getElementById('file-upload-head').style.display="inline";
				document.getElementById('uploaded-file').style.display="none";
				document.getElementById('uploaded-file-head').style.display="none";
			}
		}
	}
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send("fid=" + fid);		
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	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) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function addItemToList(li){
	var lastIndex = document.getElementById('s').value.lastIndexOf(",");
	if(lastIndex < 0)
		document.getElementById('s').value = li.id ;
	else {
		document.getElementById('s').value =  document.getElementById('s').value.substr(0,lastIndex+1) + li.id ;
	}
	document.getElementById('s').focus();
			
}

// allow the dynamic filter of notes on the board
function filterNotes(search){
    var parentElement = $('page') ;
    var childElement = null;
    var children = parentElement.childNodes;
    search = Trim(search);
   
    for (i=0; i<children.length; i++){
        var text = children.item(i).innerText || children.item(i).textContent
        var str = text;
	var reg = new RegExp("\\b" + search,"i");
	if (!reg.test(str)){
		Effect.Fade(children.item(i).id,{duration:0.30});
	} else {
		Effect.Appear(children.item(i).id,{duration:0.30});
	}      
    }
} // end filterNotes

function showAll(){
    var parentElement = $('page') ;
    var childElement = null;
    var children = parentElement.childNodes;
    for (i=0; i<children.length; i++){
        Effect.Appear(children.item(i).id,{duration:0.30});
        
    }
} // end show all

function LTrim(str) {
	for (var i=0; ((str.charAt(i)<=" ")&&(str.charAt(i)!="")); i++);
	return str.substring(i,str.length);
}
function RTrim(str) {
	for (var i=str.length-1; ((str.charAt(i)<=" ")&&(str.charAt(i)!="")); i--);
	return str.substring(0,i+1);
}

function Trim(str) {
	return LTrim(RTrim(str));
}

var count = 0;
function filter(search){
      	count = count+1;
  	setTimeout("dropDownGo("+count+",'"+search+"')",250);
}
   
       
   
function dropDownGo(currCount,search) {
	if(currCount == count) {
		count = 0;
 		filterNotes(search);
	}
} // end dropDownGo

function refreshBoard(){
	w = Math.round(browserSize('w')/2-110);
    	h = Math.round(browserSize('h')/2-190);
	var xmlhttp = createRequest();
	xmlhttp.open('POST','refresh.php',true);
	xmlhttp.onreadystatechange = function() {  
		if (xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200){
				var response = xmlhttp.responseText;
				var response_array = response.split(",");
				if(response_array != ""){
					for (i=0; i<response_array.length; i++){
							rid = response_array[i];
							
							var newDiv = Builder.node('div', {id: rid, className: 'section', style: 'display:none;left:'+w+'px;top:'+h+'\px;z-index:'+currentIndex+';',onclick:'bringToFront(this)',ondblclick:'editNote(\'' + rid + '\');'}, [Builder.node('div',{id: "inner-"+rid,className: 'inner-note-text'},"")]);
							sections.push(newDiv.id);
							$('page').appendChild(newDiv);
							Effect.Appear(newDiv.id);
							createLineItemSortables();
							load(rid);
							
							// remove the welcome message
							if(document.getElementById("welcome-message"))
	   							document.getElementById("welcome-message").style.display = "none";

					}
				}
				var refreshTimeout = setTimeout("refreshBoard()", 25000);
			}
		}
	}
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send("");
}

