/* JavaScript Document
#########################################################
#														#
#	Project:	Weritech Funcions						#
#	Versie:		1.0										#
#	Filename:	Weritech.Connection.js					#
#	copyright:	(c) 2005-2010 Weritech V.O.F.			#
#	Created By:	S. Riewald and N. van der Wegen			#
#	www:		info@weritech.nl						#
#														#			
#########################################################  
*/

Weritech.Connection = new Connection();

function Connection(){
}

var DateForid = new Date();
var linkid = DateForid.getYear() + '' + (DateForid.getMonth()+1) + '' + DateForid.getDate() + '' + DateForid.getHours() + '' + DateForid.getMinutes() + '' + DateForid.getSeconds(); 

// Start Public XMLHttp Post Functions

Weritech.Connection.XMLHttpPost = function (ObjectID,Data,Url) { XMLHttpPost(ObjectID,Data,Url); };
	
// End Public XMLHttp Post Functions

/////////////////////////////// < ....Private functions form here.... > \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

// Start Private XMLHttp Post Functions

function XMLHttpPost(ObjectID,data,url){
	
	if (!document.getElementById(ObjectID)) {
		alert('Div id: ' + ObjectID + ' kan niet gevonden worden.');
		retrun;
	}
	linkid++;
	var sendid = linkid;
	eval("XMLHttp" + sendid  + " = null");
	if (window.XMLHttpRequest) {
		eval("XMLHttp" + sendid  + " = new XMLHttpRequest()");
    } else if (window.ActiveXObject) { // code for IE5 and IE6
		eval("XMLHttp" + sendid  + " = new ActiveXObject(\"Microsoft.XMLHTTP\")");
	}
	if (eval("XMLHttp" + sendid) !=null) {
		eval("XMLHttp" + sendid).onreadystatechange = new Function("XMLHttpPost_Return('"+sendid+"','"+ObjectID+"')");
    	if ((!url) || (url == '')) {
    		url = '?';
    	}
    	eval("XMLHttp" + sendid).open("POST",url,true);
    	eval("XMLHttp" + sendid).send(data + '&sendid=' + sendid + '&ReturnWithXmlhttp=1');	
    } else {
    	alert("Your browser does not support XMLHTTP.");
    }
}

function XMLHttpPost_Return(returnid,ObjectID) {
	if (eval("XMLHttp" + returnid).readyState==4) { // 4 = "loaded"
		 if (eval("XMLHttp" + returnid).status==200) { 
			BuildActionList(eval("XMLHttp" + returnid).responseText,ObjectID);
		 }
	}
}

function BuildActionList(ReturnData,ObjectID) {
	
//	ReturnData = "InnerHtmlAdd&[DivID]===[Data]&&&";
//	ReturnData = "InnerHtmlReplace&[DivID]===[Data]&&&";
//	ReturnData = "InnerHtmlClear&[DivID]&&&";
//	ReturnData = "InputTextValueAdd&[DivID]===[Data]&&&";
//	ReturnData = "InputTextValueReplace&[DivID]===[Data]&&&";
//	ReturnData = "InputTextValueClear&[DivID]&&&";
//	ReturnData = "SelectOptionAdd&[DivID]===[Value1=Name1,Value2=Name1]&&&";
//	ReturnData = "SelectOptionReplace&[DivID]===[Value1=Name1,Value2=Name1]&&&";
//  ReturnData = "SelectOptionClear&[DivID]===&&&";
//  ReturnData = "SelectOptionSort&[DivID]===&&&";
//	ReturnData = "StyleAdd===[.stylename {};&&&]";
//	ReturnData = "ScriptAdd===[function functionname() {};]&&&";
//	ReturnData = "Eval===[function();]&&&";

	
	var MessageTypes = new Array();
	
	MessageTypes.push("InnerHtmlAdd","InnerHtmlReplace","InnerHtmlClear");
	MessageTypes.push("InputTextValueAdd","InputTextValueReplace","InputTextValueClear");
	MessageTypes.push("SelectOptionAdd","SelectOptionReplace","SelectOptionClear","SelectOptionSort");
	MessageTypes.push("StyleAdd");
	MessageTypes.push("ScriptAdd");
	MessageTypes.push("Eval");
	
	var InnerHtmlAdd = new Array();
	var InnerHtmlReplace = new Array();
	var InnerHtmlClear = new Array();
	
	var InputTextValueAdd = new Array();
	var InputTextValueReplace = new Array();
	var InputTextValueClear = new Array();
	
	var SelectOptionAdd = new Array();
	var SelectOptionReplace = new Array();
	var SelectOptionClear = new Array();
	var SelectOptionSort = new Array();
	
	var StyleAdd = new Array();
	var ScriptAdd = new Array();
	var Eval = new Array();
	
	for(var i=0;i<MessageTypes.length;i++) {
		 eval(MessageTypes[i] + "_" + ObjectID +  " = ''");
	}
	
	var arrTmp = ReturnData.split("&&&");
	
	for(var i=0;i<arrTmp.length;i++) {
		var myarray = arrTmp[i].split("===");
		var ItemDiv = '';
		var ItemFunction = '';
		if (myarray[0].indexOf('&') >= 1) {
			ItemDiv = myarray[0].substring(myarray[0].indexOf('&') + 1);
			ItemFunction = myarray[0].substring(0,myarray[0].indexOf('&'))
		} else {
			ItemDiv = ObjectID;
			ItemFunction = myarray[0];
		}
		for (var j = 0; j < MessageTypes.length; j++) {
			if ((MessageTypes[j] == ItemFunction) || ('\n' + MessageTypes[j] == ItemFunction)){
				eval(MessageTypes[j]).push(ItemDiv + "===" + myarray[1]);
			}	
		}
	}
	
	// Run Functions from here....
	
	// Start Add data into innerHTML
	for (var j = 0; j < InnerHtmlAdd.length; j++) {
		 var InnerHtmlAddArray = InnerHtmlAdd[j].split('===');
		 Weritech.InnerHtmlAdd(InnerHtmlAddArray[0],InnerHtmlAddArray[1])
	}
	InnerHtmlAdd = null;
	
	// Start Replace data into innerHTML
	for (var j = 0; j < InnerHtmlReplace.length; j++) {
		 var InnerHtmlReplaceArray = InnerHtmlReplace[j].split('===');
		 Weritech.InnerHtmlReplace(InnerHtmlReplaceArray[0],InnerHtmlReplaceArray[1])
	}
	InnerHtmlReplace = null;
	
	// Start Clear data from innerHTML
	for (var j = 0; j < InnerHtmlClear.length; j++) {
		 var InnerHtmlClearArray = InnerHtmlClear[j].split('===');
		 alert('Start replace');
		 Weritech.InnerHtmlClear(InnerHtmlClearArray[0]);
		  alert('End replace');
		 
	}
	InnerHtmlClear = null;
	
	// Start Add data into Value
	for (var j = 0; j < InputTextValueAdd.length; j++) {
		 var InputTextValueAddArray = InputTextValueAdd[j].split('===');
		 Weritech.InputTextValueAdd(InputTextValueAddArray[0],InputTextValueAddArray[1]);
	}
	InputTextValueAdd = null;
	
	// Start Replace data into Value
	for (var j = 0; j < InputTextValueReplace.length; j++) {
		 var InputTextValueReplaceArray = InputTextValueReplace[j].split('===');
		 Weritech.InputTextValueReplace(InputTextValueReplaceArray[0],InputTextValueReplaceArray[1]);
	}
	InputTextValueReplace = null;
	
	// Start Clear data into Value
	for (var j = 0; j < InputTextValueClear.length; j++) {
		 var InputTextValueClearArray = InputTextValueClear[j].split('===');
		 Weritech.InputTextValueClear(InputTextValueClearArray[0]);
	}
	InputTextValueClear = null;
	
	// Start Add options in Select field
	for (var i = 0; i < SelectOptionAdd.length; i++) {
		 var SelectOptionAddArray = SelectOptionAdd[i].split('===');
		 Weritech.SelectOptionAdd(SelectOptionAddArray[0],SelectOptionAddArray[1]);
		/* if (document.getElementById(SelectOptionAddArray[0])) {
			var elSel = document.getElementById(SelectOptionAddArray[0]);
			var arrTmp = SelectOptionAddArray[1].split(",");
			for(var j=0;j<arrTmp.length;j++) {
       			if (arrTmp[j]) {
       				var op = document.createElement("OPTION");
        			var arrTmp1 = arrTmp[j].split("=");
          			op.text = arrTmp1[1];
          			op.value = arrTmp1[0];
          			try {
            			elSel.add(op, null); 
           			} catch(ex) {
             			elSel.add(op);
          			}
				}
			}
		}
		*/
	}
	SelectOptionAdd = null;
	
	// Start Replace options in Select field
	for (var i = 0; i < SelectOptionReplace.length; i++) {
		 var SelectOptionReplaceArray = SelectOptionReplace[i].split('===');
		 Weritech.SelectOptionReplace(SelectOptionReplaceArray[0],SelectOptionReplaceArray[1]);
		/* if (document.getElementById(SelectOptionReplaceArray[0])) {
			var elSel = document.getElementById(SelectOptionReplaceArray[0]);
			//Remove options in Select field
			for (j = elSel.length - 1; j>=0; j--) {
          			elSel.remove(j);
     		}	 
			var arrTmp = SelectOptionReplaceArray[1].split(",");
			for(var j=0;j<arrTmp.length;j++) {
       			if (arrTmp[j]) {
       				var op = document.createElement("OPTION");
        			var arrTmp1 = arrTmp[j].split("=");
          			op.text = arrTmp1[1];
          			op.value = arrTmp1[0];
          			try {
            			elSel.add(op, null); 
           			} catch(ex) {
             			elSel.add(op);
          			}
				}
			}
		}
		*/
	}
	SelectOptionReplace = null;
	
	// Start Clear options in Select field
	for (var i = 0; i < SelectOptionClear.length; i++) {
		 var SelectOptionClearArray = SelectOptionClear[i].split('===');
		 Weritech.SelectOptionClear(SelectOptionClearArray[0]);
		 /*if (document.getElementById(SelectOptionClearArray[0])) {
			var elSel = document.getElementById(SelectOptionClearArray[0]);
			//Remove options in Select field
			for (j = elSel.length - 1; j>=0; j--) {
          			elSel.remove(j);
     		}	 
		
		
		}
		*/
	}
	SelectOptionClear = null;
	
	// Start Sort options select field
	for (var i = 0; i < SelectOptionSort.length; i++) {
		 var SelectOptionSortArray = SelectOptionSort[i].split('===');
		/* if (document.getElementById(SelectOptionSortArray[0])) {
			var elSel = document.getElementById(SelectOptionSortArray[0]);
			var arrTexts = new Array();
  			for(j=0; j<elSel.length; j++)  {
    			arrTexts[j] = elSel.options[j].text;
   			}
			arrTexts.sort();
  			for(j=0; j<elSel.length; j++)  {
    			elSel.options[j].text = arrTexts[j];
    			elSel.options[j].value = arrTexts[j];
  			}
		}
		*/
	}
	SelectOptionSort = null;
	 
	// Start Style Add Script to document
	for (var i = 0; i < StyleAdd.length; i++) {
		var StyleAddArray = StyleAdd[i].split('===');
		Weritech.StyleAdd(StyleAddArray[1],StyleAddArray[0]);
		/*
		var style = document.createElement('style');
		style.setAttribute("type", "text/css");
		if (style.styleSheet) {  // IE
    		style.styleSheet.cssText = StyleAddArray[1];
		} else { // the world
    		var tt1 = document.createTextNode(newdef);
   			style.appendChild(tt1);
		}
		document.body.appendChild(style);
		*/
	}
	StyleAdd = null;
	
	// Start Add Script to document
	for (var i = 0; i < ScriptAdd.length; i++) {
		var ScriptAddArray = ScriptAdd[i].split('===');
		Weritech.ScriptAdd(ScriptAddArray[1],ScriptAddArray[0]);
	}
	ScriptAdd = null;
	
	// Start Eval Script
	for (var i = 0; i < Eval.length; i++) {
		var EvalArray = Eval[i].split('===');
		Weritech.Eval(EvalArray[1]);
	}
	Eval = null;
}
// End Private XMLHttp Post Functions
